<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一個(gè)「神奇」的Python庫,99%的人都愛!

          共 5349字,需瀏覽 11分鐘

           ·

          2022-01-01 13:52

          背景介紹

          今天介紹Python中一個(gè)超級(jí)神奇的庫,99%人用過都喜歡它,剩下的1%沒用過!
          在如今的大數(shù)據(jù)時(shí)代,數(shù)據(jù)的價(jià)值可想而知。有時(shí)候?yàn)榱俗鰷y試,需要模擬真實(shí)的環(huán)境,但是又不能直接使用真實(shí)數(shù)據(jù),就需要我們認(rèn)為制造一些數(shù)據(jù)出來。
          對比Excel,我還是覺得Python制造這樣的?"虛擬"?數(shù)據(jù),更省時(shí)、省力。
          周末,突然想到了曾今做過的這個(gè)問題,這里為大家做個(gè)復(fù)盤吧!
          需求:?老板讓模擬一批數(shù)據(jù),用于項(xiàng)目實(shí)驗(yàn),由于一些真實(shí)數(shù)據(jù)不能展示出來,我需要模擬一些數(shù)據(jù),字段包括:姓名所在省份詳細(xì)地址手機(jī)號(hào)身份證號(hào)出生年月郵箱等。
          當(dāng)然,這批數(shù)據(jù)肯定是需要你最終寫入到Excel中,一次性交給老板的。那么,這樣的需求,你會(huì)做嗎?

          實(shí)戰(zhàn):模擬1w條數(shù)據(jù)寫入Excel

          在講述基礎(chǔ)之前,直接上實(shí)戰(zhàn),讓大家體會(huì)一下,如何將生成的模擬數(shù)據(jù),最終寫入到Excel文件中。
          from?faker?import?Faker
          import?pandas?as?pd
          ?
          fake?=?Faker(["zh_CN"])
          Faker.seed(0)

          def?get_data():
          ????key_list?=?["姓名","詳細(xì)地址","所在省份","手機(jī)號(hào)","身份證號(hào)","出生年月","郵箱"]
          ????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=["姓名","詳細(xì)地址","所在省份","手機(jī)號(hào)","身份證號(hào)","出生年月","郵箱"])
          for?i?in?range(10000):
          ????person_info?=?[get_data()]
          ????df1?=?pd.DataFrame(person_info)
          ????df?=?pd.concat([df,df1])
          df.to_excel("模擬數(shù)據(jù).xlsx",index=None)

          結(jié)果如下:
          上述數(shù)據(jù)純屬模擬,如果雷同,請勿對號(hào)!

          Python庫講解

          這么好用的Python庫,究竟應(yīng)該怎么使用呢?
          我們直接使用下面的代碼,可以完成這個(gè)庫的安裝。
          pip?install?Faker?-i?https://pypi.tuna.tsinghua.edu.cn/simple/
          使用之前,使用如下代碼,導(dǎo)入這個(gè)庫。
          from?faker?import?Faker
          在講述寫入到Excel之前,我們先分布講述一下,每個(gè)函數(shù)的用法。

          1. 生成姓名

          fake?=?Faker(locale='zh_CN')
          name?=?fake.name()
          name

          結(jié)果如下:

          2. 生成詳細(xì)地址

          address?=?fake.address()
          address

          結(jié)果如下:

          3. 生成所在省份

          province?=?address[:3]
          province

          結(jié)果如下:
          由于這個(gè)函數(shù)每次運(yùn)行結(jié)果都不一樣,所以我才用切片方式,生成省份。當(dāng)然這里也有特定函數(shù),生成省份。
          fake.province()
          結(jié)果如下:

          4. 生成手機(jī)號(hào)

          number?=?fake.phone_number()
          number

          結(jié)果如下:

          5. 生成身份證號(hào)

          id_card?=?fake.ssn()
          id_card

          結(jié)果如下:

          6. 生成出生年月

          birth_date?=?id_card[6:14]
          birth_date
          結(jié)果如下:

          7. 生成郵箱

          email?=?fake.email()
          email

          結(jié)果如下:

          補(bǔ)充

          當(dāng)然,faker庫不僅可以幫助我們生成上述信息,還有很多其它方法可用,這些方法分為以下幾類:
          • address 地址
          • person 人物類:性別、姓名等
          • barcode 條碼類
          • color 顏色類
          • company 公司類:公司名、email、公司名前綴等
          • credit_card 銀行卡類:卡號(hào)、有效期、類型等
          • currency 貨幣
          • date_time 時(shí)間日期類:日期、年、月等
          • file 文件類:文件名、文件類型、文件擴(kuò)展名等
          • internet 互聯(lián)網(wǎng)類
          • job 工作
          • lorem 亂數(shù)假文
          • misc 雜項(xiàng)類
          • phone_number 手機(jī)號(hào)碼類:手機(jī)號(hào)、運(yùn)營商號(hào)段
          • python python數(shù)據(jù)
          • profile 人物描述信息:姓名、性別、地址、公司等
          • ssn 社會(huì)安全碼(身份證號(hào)碼)
          • user_agent 用戶代理
          關(guān)于這些方法的使用,我們直接參考faker的官網(wǎng),用起來超方便。
          faker.readthedocs.io/en/master/providers.html

          1. address 地址

          fake.country()??#?國家
          fake.city()??#?城市
          fake.city_suffix()??#?城市的后綴,中文是:市或縣
          fake.address()??#?地址
          fake.street_address()??#?街道
          fake.street_name()??#?街道名
          fake.postcode()??#?郵編
          fake.latitude()??#?維度
          fake.longitude()??#?經(jīng)度

          2. person 人物

          fake.name()?#?姓名
          fake.last_name()?#?姓
          fake.first_name()?#?名
          fake.name_male()?#?男性姓名
          fake.last_name_male()?#?男性姓
          fake.first_name_male()?#?男性名
          fake.name_female()?#?女性姓名

          3. color 顏色

          fake.hex_color()?#?16進(jìn)制表示的顏色
          fake.rgb_css_color()?#?css用的rgb色
          fake.rgb_color()??#?表示rgb色的字符串
          fake.color_name()?#?顏色名字
          fake.safe_hex_color()??#安全16進(jìn)制色
          fake.safe_color_name()?#?安全顏色名字

          4. company 公司

          fake.company()?#?公司名
          fake.company_suffix()?#?公司名后綴

          5. credit_card 銀行信用卡

          fake.credit_card_number(card_type=None)?#?卡號(hào)
          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)?#?完整卡信息

          6. date_time 時(shí)間日期

          fake.date_time(tzinfo=None)?#?隨機(jī)日期時(shí)間
          fake.iso8601(tzinfo=None)?#?以iso8601標(biāo)準(zhǔn)輸出的日期
          fake.date_time_this_month(before_now=True,?after_now=False,?tzinfo=None)?#?本月的某個(gè)日期
          fake.date_time_this_year(before_now=True,?after_now=False,?tzinfo=None)?#?本年的某個(gè)日期
          fake.date_time_this_decade(before_now=True,?after_now=False,?tzinfo=None)??#?本年代內(nèi)的一個(gè)日期
          fake.date_time_this_century(before_now=True,?after_now=False,?tzinfo=None)??#?本世紀(jì)一個(gè)日期
          fake.date_time_between(start_date="-30y",?end_date="now",?tzinfo=None)??#?兩個(gè)時(shí)間間的一個(gè)隨機(jī)時(shí)間
          fake.timezone()?#?時(shí)區(qū)
          fake.time(pattern="%H:%M:%S")?#?時(shí)間(可自定義格式)
          fake.am_pm()?#?隨機(jī)上午下午
          fake.month()?#?隨機(jī)月份
          fake.month_name()?#?隨機(jī)月份名字
          fake.year()?#?隨機(jī)年
          fake.day_of_week()?#?隨機(jī)星期幾
          fake.day_of_month()?#?隨機(jī)月中某一天
          fake.time_delta()?#?隨機(jī)時(shí)間延遲
          fake.date_object()??#?隨機(jī)日期對象
          fake.time_object()?#?隨機(jī)時(shí)間對象
          fake.unix_time()?#?隨機(jī)unix時(shí)間(時(shí)間戳)
          fake.date(pattern="%Y-%m-%d")?#?隨機(jī)日期(可自定義格式)
          fake.date_time_ad(tzinfo=None)??#?公元后隨機(jī)日期

          7. file 文件

          fake.file_name(category="image",?extension="png")?#?文件名(指定文件類型和后綴名)
          fake.file_name()?#?隨機(jī)生成各類型文件
          fake.file_extension(category=None)?#?文件后綴
          fake.mime_type(category=None)?#?mime-type

          8. internet 互聯(lián)網(wǎng)

          fake.ipv4(network=False)??#?ipv4地址
          fake.ipv6(network=False)??#?ipv6地址
          fake.uri_path(deep=None)?#?uri路徑
          fake.uri_extension()?#?uri擴(kuò)展名
          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()?#?免費(fèi)郵箱
          fake.company_email()??#?公司郵箱
          fake.email()?#?郵箱

          9. job 工作

          fake.job()#工作職位

          10. lorem 亂數(shù)假文

          fake.text(max_nb_chars=200)?#?隨機(jī)生成一篇文章
          fake.word()?#?隨機(jī)單詞
          fake.words(nb=3)??#?隨機(jī)生成幾個(gè)字
          fake.sentence(nb_words=6,?variable_nb_words=True)??#?隨機(jī)生成一個(gè)句子
          fake.sentences(nb=3)?#?隨機(jī)生成幾個(gè)句子
          fake.paragraph(nb_sentences=3,?variable_nb_sentences=True)??#?隨機(jī)生成一段文字(字符串)
          fake.paragraphs(nb=3)??#?隨機(jī)生成成幾段文字(列表)

          11. phone_number 電話號(hào)碼

          fake.phone_number()?#?手機(jī)號(hào)碼
          fake.phonenumber_prefix()?#?運(yùn)營商號(hào)段,手機(jī)號(hào)碼前三位

          12. ssn 社會(huì)安全碼(身份證)

          fake.ssn()?#?隨機(jī)生成身份證號(hào)(18位)

          13. user_agent 用戶代理

          fake.user_agent()

          各位伙伴們好,詹帥本帥搭建了一個(gè)個(gè)人博客和小程序,匯集各種干貨和資源,也方便大家閱讀,感興趣的小伙伴請移步小程序體驗(yàn)一下哦!(歡迎提建議)

          推薦閱讀


          牛逼!Python常用數(shù)據(jù)類型的基本操作(長文系列第①篇)

          牛逼!Python的判斷、循環(huán)和各種表達(dá)式(長文系列第②篇)

          牛逼!Python函數(shù)和文件操作(長文系列第③篇)

          牛逼!Python錯(cuò)誤、異常和模塊(長文系列第④篇)


          瀏覽 36
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产二线在线观看 | 夜夜骚视频 | 欧美色图视频网址 | 在线中文字幕777 | 国产无码高清视频 |