欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中第三方庫Faker的使用詳解

 更新時(shí)間:2022年04月01日 15:08:17   作者:黃偉呢  
在如今的大數(shù)據(jù)時(shí)代,數(shù)據(jù)的價(jià)值可想而知。有時(shí)候?yàn)榱俗鰷y(cè)試,需要模擬真實(shí)的環(huán)境,但是又不能直接使用真實(shí)數(shù)據(jù),就需要我們認(rèn)為制造一些數(shù)據(jù)出來。這時(shí)候就要來說說Python這的Faker庫了,快跟隨小編來學(xué)習(xí)一下這個(gè)庫吧

背景介紹

今天介紹Python中一個(gè)超級(jí)神奇的庫,99%人用過都喜歡它,剩下的1%沒用過!

在如今的大數(shù)據(jù)時(shí)代,數(shù)據(jù)的價(jià)值可想而知。有時(shí)候?yàn)榱俗鰷y(cè)試,需要模擬真實(shí)的環(huán)境,但是又不能直接使用真實(shí)數(shù)據(jù),就需要我們認(rèn)為制造一些數(shù)據(jù)出來。

對(duì)比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ù)純屬模擬,如果雷同,請(qǐng)勿對(duì)號(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),用起來超方便。

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ī)日期對(duì)象
fake.time_object() # 隨機(jī)時(shí)間對(duì)象
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()

以上就是Python中第三方庫Faker的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Python Faker庫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 通過實(shí)例解析python and和or使用方法

    通過實(shí)例解析python and和or使用方法

    這篇文章主要介紹了通過實(shí)例解析python and和or使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python pandas最常用透視表實(shí)現(xiàn)應(yīng)用案例

    python pandas最常用透視表實(shí)現(xiàn)應(yīng)用案例

    透視表是一種可以對(duì)數(shù)據(jù)動(dòng)態(tài)排布并且分類匯總的表格格式,它在數(shù)據(jù)分析中有著重要的作用和地位,在本文中,我將為你介紹python中如何使用pandas包實(shí)現(xiàn)透視表的功能,以及一些常見的應(yīng)用案例
    2024-01-01
  • caffe binaryproto 與 npy相互轉(zhuǎn)換的實(shí)例講解

    caffe binaryproto 與 npy相互轉(zhuǎn)換的實(shí)例講解

    今天小編就為大家分享一篇caffe binaryproto 與 npy相互轉(zhuǎn)換的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python使用flask框架操作sqlite3的兩種方式

    Python使用flask框架操作sqlite3的兩種方式

    這篇文章主要介紹了Python使用flask框架操作sqlite3的兩種方式,結(jié)合實(shí)例形式分析了Python基于flask框架操作sqlite3數(shù)據(jù)庫的兩種常用操作技巧,需要的朋友可以參考下
    2018-01-01
  • python提取log文件內(nèi)容并畫出圖表

    python提取log文件內(nèi)容并畫出圖表

    這篇文章主要介紹了python提取log文件內(nèi)容并畫出圖表,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python中的Pyperclip模塊功能詳解

    python中的Pyperclip模塊功能詳解

    pyperclip模塊中有兩個(gè)函數(shù),分別是copy()和paste(),copy()用于向計(jì)算機(jī)的剪貼板發(fā)送文本,paste()用于從計(jì)算機(jī)剪貼板接收文本,這篇文章主要介紹了python中的Pyperclip模塊,需要的朋友可以參考下
    2023-03-03
  • Flask框架中request、請(qǐng)求鉤子、上下文用法分析

    Flask框架中request、請(qǐng)求鉤子、上下文用法分析

    這篇文章主要介紹了Flask框架中request、請(qǐng)求鉤子、上下文用法,結(jié)合實(shí)例形式分析了flask框架中request、請(qǐng)求鉤子及上下文的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • Python3實(shí)現(xiàn)騰訊云OCR識(shí)別

    Python3實(shí)現(xiàn)騰訊云OCR識(shí)別

    這篇文章主要為大家詳細(xì)介紹了Python3實(shí)現(xiàn)騰訊云OCR識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python檢測(cè)遠(yuǎn)程udp端口是否打開的方法

    python檢測(cè)遠(yuǎn)程udp端口是否打開的方法

    這篇文章主要介紹了python檢測(cè)遠(yuǎn)程udp端口是否打開的方法,涉及Python操作socket實(shí)現(xiàn)檢測(cè)udp端口的技巧,需要的朋友可以參考下
    2015-03-03
  • 在多種情況/開發(fā)環(huán)境中運(yùn)行python腳本和代碼的技巧分享

    在多種情況/開發(fā)環(huán)境中運(yùn)行python腳本和代碼的技巧分享

    Python腳本或程序是包含可執(zhí)行Python代碼的文件,能夠運(yùn)行Python腳本和代碼可能是您作為Python開發(fā)人員所需的最重要的技能,在本教程中,您將學(xué)習(xí)一些運(yùn)行Python腳本和代碼的技術(shù),在每種情況下使用的技術(shù)將取決于您的環(huán)境、平臺(tái)、需求和技能
    2023-11-11

最新評(píng)論