<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
今天介紹Python中一個超級神奇的庫,99%人用過都喜歡它,剩下的1%沒用過!
在如今的巨量資料時代,資料的價值可想而知。有時候為了做測試,需要模擬真實的環境,但是又不能直接使用真實資料,就需要我們認為製造一些資料出來。
對比Excel,我還是覺得Python製造這樣的 "虛擬" 資料,更省時、省力。
週末,突然想到了曾今做過的這個問題,這裡為大家做個覆盤吧!
需求: 老闆讓模擬一批資料,用於專案實驗,由於一些真實資料不能展示出來,我需要模擬一些資料,欄位包括:姓名、所在省份、詳細地址、手機號、身份證號、出生年月、郵箱等。
當然,這批資料肯定是需要你最終寫入到Excel中,一次性交給老闆的。那麼,這樣的需求,你會做嗎?
在講述基礎之前,直接上實戰,讓大家體會一下,如何將生成的模擬資料,最終寫入到Excel檔案中。
from faker import Faker import pandas as pd fake = Faker(["zh_CN"]) Faker.seed(0) def get_data(): key_list = ["姓名","詳細地址","所在省份","手機號","身份證號","出生年月","郵箱"] name = fake.name() address = fake.address() province = address[:3] number = fake.phone_number() id_card = fake.ssn() birth_date = id_card[6:14] email = fake.email() info_list = [name,address,province,number,id_card,birth_date,email] person_info = dict(zip(key_list,info_list)) return person_info df = pd.DataFrame(columns=["姓名","詳細地址","所在省份","手機號","身份證號","出生年月","郵箱"]) for i in range(10000): person_info = [get_data()] df1 = pd.DataFrame(person_info) df = pd.concat([df,df1]) df.to_excel("模擬資料.xlsx",index=None)
結果如下:
上述資料純屬模擬,如果雷同,請勿對號!
這麼好用的Python庫,究竟應該怎麼使用呢?
我們直接使用下面的程式碼,可以完成這個庫的安裝。
pip install Faker -i https://pypi.tuna.tsinghua.edu.cn/simple/
使用之前,使用如下程式碼,匯入這個庫。
from faker import Faker
在講述寫入到Excel之前,我們先分佈講述一下,每個函數的用法。
fake = Faker(locale='zh_CN') name = fake.name() name
結果如下:
address = fake.address() address
結果如下:
province = address[:3] province
結果如下:
由於這個函數每次執行結果都不一樣,所以我才用切片方式,生成省份。當然這裡也有特定函數,生成省份。
fake.province()
結果如下:
number = fake.phone_number() number
結果如下:
id_card = fake.ssn() id_card
結果如下:
birth_date = id_card[6:14] birth_date
結果如下:
email = fake.email() email
結果如下:
當然,faker庫不僅可以幫助我們生成上述資訊,還有很多其它方法可用,這些方法分為以下幾類:
關於這些方法的使用,我們直接參考faker的官網,用起來超方便。
fake.country() # 國家 fake.city() # 城市 fake.city_suffix() # 城市的字尾,中文是:市或縣 fake.address() # 地址 fake.street_address() # 街道 fake.street_name() # 街道名 fake.postcode() # 郵編 fake.latitude() # 維度 fake.longitude() # 經度
fake.name() # 姓名 fake.last_name() # 姓 fake.first_name() # 名 fake.name_male() # 男性姓名 fake.last_name_male() # 男性姓 fake.first_name_male() # 男性名 fake.name_female() # 女性姓名
fake.hex_color() # 16進位製表示的顏色 fake.rgb_css_color() # css用的rgb色 fake.rgb_color() # 表示rgb色的字串 fake.color_name() # 顏色名字 fake.safe_hex_color() #安全16進位制色 fake.safe_color_name() # 安全顏色名字
fake.company() # 公司名 fake.company_suffix() # 公司名字尾
fake.credit_card_number(card_type=None) # 卡號 fake.credit_card_provider(card_type=None) # 卡的提供者 fake.credit_card_security_code(card_type=None)# 卡的安全密碼 fake.credit_card_expire() # 卡的有效期 fake.credit_card_full(card_type=None) # 完整卡資訊
fake.date_time(tzinfo=None) # 隨機日期時間 fake.iso8601(tzinfo=None) # 以iso8601標準輸出的日期 fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None) # 本月的某個日期 fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None) # 本年的某個日期 fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None) # 本年代內的一個日期 fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None) # 本世紀一個日期 fake.date_time_between(start_date="-30y", end_date="now", tzinfo=None) # 兩個時間間的一個隨機時間 fake.timezone() # 時區 fake.time(pattern="%H:%M:%S") # 時間(可自定義格式) fake.am_pm() # 隨機上午下午 fake.month() # 隨機月份 fake.month_name() # 隨機月份名字 fake.year() # 隨機年 fake.day_of_week() # 隨機星期幾 fake.day_of_month() # 隨機月中某一天 fake.time_delta() # 隨機時間延遲 fake.date_object() # 隨機日期物件 fake.time_object() # 隨機時間物件 fake.unix_time() # 隨機unix時間(時間戳) fake.date(pattern="%Y-%m-%d") # 隨機日期(可自定義格式) fake.date_time_ad(tzinfo=None) # 公元后隨機日期
fake.file_name(category="image", extension="png") # 檔名(指定檔案型別和字尾名) fake.file_name() # 隨機生成各型別檔案 fake.file_extension(category=None) # 檔案字尾 fake.mime_type(category=None) # mime-type
fake.ipv4(network=False) # ipv4地址 fake.ipv6(network=False) # ipv6地址 fake.uri_path(deep=None) # uri路徑 fake.uri_extension() # uri擴充套件名 fake.uri() # uri fake.url() # url fake.image_url(width=None, height=None) # 圖片url fake.domain_word() # 域名主體 fake.domain_name() # 域名 fake.tld() # 域名字尾 fake.user_name() # 使用者名稱 fake.user_agent() # UA fake.mac_address() # MAC地址 fake.safe_email() # 安全郵箱 fake.free_email() # 免費郵箱 fake.company_email() # 公司郵箱 fake.email() # 郵箱
fake.job()#工作職位
fake.text(max_nb_chars=200) # 隨機生成一篇文章 fake.word() # 隨機單詞 fake.words(nb=3) # 隨機生成幾個字 fake.sentence(nb_words=6, variable_nb_words=True) # 隨機生成一個句子 fake.sentences(nb=3) # 隨機生成幾個句子 fake.paragraph(nb_sentences=3, variable_nb_sentences=True) # 隨機生成一段文字(字串) fake.paragraphs(nb=3) # 隨機生成成幾段文字(列表)
fake.phone_number() # 手機號碼 fake.phonenumber_prefix() # 運營商號段,手機號碼前三位
fake.ssn() # 隨機生成身份證號(18位元)
fake.user_agent()
以上就是Python中第三方庫Faker的使用詳解的詳細內容,更多關於Python Faker庫的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45