Pandas技巧分享之創(chuàng)建測試數(shù)據(jù)
學(xué)習(xí)pandas
的過程中,為了嘗試pandas
提供的各類功能強(qiáng)大的函數(shù),常常需要花費(fèi)很多時間去創(chuàng)造測試數(shù)據(jù)。
在pandas
中,快速創(chuàng)建測試數(shù)據(jù)可以更快的評估 pandas
函數(shù)。
通過生成一組測試數(shù)據(jù),可以評估例如 read_csv
、read_excel
、groupby
等函數(shù),以確保這些函數(shù)在處理不同數(shù)據(jù)格式和結(jié)構(gòu)時都能正常工作。
本篇介紹一些快速創(chuàng)建測試數(shù)據(jù)的方法,提高學(xué)習(xí)pandas
的效率。
1. 一般方法
一般創(chuàng)建測試數(shù)據(jù)的有兩種:
- 一種是直接創(chuàng)建每行每列的數(shù)據(jù)
- 用 numpy 隨機(jī)生成二維數(shù)組
1.1. 直接創(chuàng)建數(shù)據(jù)
這種方式之前的視頻中已經(jīng)多次使用,直接創(chuàng)建數(shù)據(jù)雖然麻煩,但好處是每個數(shù)據(jù)都可控,不論是數(shù)據(jù)類型還是值都高度可控。
import pandas as pd df = pd.DataFrame( { "數(shù)學(xué)": [100, 88, 94, 76, 84], "語文": [98, 80, 86, 76, 90], "英語": [95, 91, 86, 95, 83], }, index=["小紅", "小明", "小汪", "小李", "小張"], ) df
1.2. 隨機(jī)二維數(shù)組
隨機(jī)生成二維數(shù)組需要用到numpy
庫,通過 numpy
生成隨機(jī)二維數(shù)據(jù),然后將其轉(zhuǎn)換為pandas
的DataFrame
。
比如,下面生成一個3行4列的隨機(jī)數(shù)據(jù):
pd.DataFrame(np.random.rand(3, 4))
上面的數(shù)據(jù)是隨機(jī)的,每次運(yùn)行產(chǎn)生的結(jié)果會不一樣。
隨機(jī)創(chuàng)建數(shù)據(jù)時,也可以設(shè)置索引和列名。
pd.DataFrame( np.random.rand(3, 4), index=["row1", "row2", "row3"], columns=["col1", "col2", "col3", "col4"], )
2. 特殊技巧
上面介紹隨機(jī)生成數(shù)據(jù)的方法只能生成浮點(diǎn)型數(shù)據(jù),而且索引和列名都只能是默認(rèn)的自增數(shù)字,數(shù)據(jù)的多樣性不夠。
下面介紹pandas自身提供的一些隨機(jī)生成數(shù)據(jù)方法,可以生成不同類型的隨機(jī)數(shù)據(jù)。
2.1. makeDataFrame
makeDataFrame()
方法會隨機(jī)創(chuàng)建一個 30x4
的數(shù)據(jù)集。
df = pd.util.testing.makeDataFrame() print(df.shape) df.head()
索引是隨機(jī)字符串。
2.2. makeMissingDataFrame
makeMissingDataFrame()
方法會隨機(jī)創(chuàng)建一個 30x4
包含缺失值的數(shù)據(jù)集,缺失值的位置也是隨機(jī)的。
df = pd.util.testing.makeMissingDataframe() print(df.shape) df.head()
2.3. makeTimeDataFrame
makeTimeDataFrame()
方法會隨機(jī)創(chuàng)建一個 30x4
包含的數(shù)據(jù)集,索引是自增的日期。
df = pd.util.testing.makeTimeDataFrame() print(df.shape) df.head()
2.4. makeMixedDataFrame
makeMixedDataFrame()
方法會隨機(jī)創(chuàng)建一個 5x4
的數(shù)據(jù)集,其中列的類型是多樣的,有字符串,日期和數(shù)值。
df = pd.util.testing.makeMixedDataFrame() print(df.shape) df
3. 補(bǔ)充
上面介紹的方法生成的數(shù)據(jù)集不大,如果需要生成數(shù)據(jù)量較大的數(shù)據(jù)集的話,可以循環(huán)生成DataFrame,然后再拼接在一起。
上面介紹的方法,每次生成的數(shù)據(jù)集的值是隨機(jī)的,不用擔(dān)心拼接后全是重復(fù)的數(shù)據(jù)。
此外,除了上面介紹的方法之外,pd.util.testing
還有其他一些創(chuàng)建數(shù)據(jù)的方法,歡迎大家去探索,使用。
到此這篇關(guān)于Pandas技巧分享之創(chuàng)建測試數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Pandas創(chuàng)建測試數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 用pandas劃分?jǐn)?shù)據(jù)集實(shí)現(xiàn)訓(xùn)練集和測試集
- 詳細(xì)介紹在pandas中創(chuàng)建category類型數(shù)據(jù)的幾種方法
- Pandas數(shù)據(jù)結(jié)構(gòu)詳細(xì)說明及如何創(chuàng)建Series,DataFrame對象方法
- Pandas中Series的創(chuàng)建及數(shù)據(jù)類型轉(zhuǎn)換
- Python使用Pandas處理測試數(shù)據(jù)的方法
- Python Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法匯總
相關(guān)文章
python+openCV對視頻進(jìn)行截取的實(shí)現(xiàn)
這篇文章主要介紹了python+openCV對視頻進(jìn)行截取的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11python腳本實(shí)現(xiàn)查找webshell的方法
這篇文章主要介紹了python腳本實(shí)現(xiàn)查找webshell的方法,是很實(shí)用的一個功能,需要的朋友可以參考下2014-07-07對python產(chǎn)生隨機(jī)的二維數(shù)組實(shí)例詳解
今天小編就為大家分享一篇對python產(chǎn)生隨機(jī)的二維數(shù)組實(shí)例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python利用jmespath模塊進(jìn)行json數(shù)據(jù)處理
jmespath是python的第三方模塊,是需要額外安裝的。它在python原有的json數(shù)據(jù)處理上做出了很大的貢獻(xiàn)。本文將詳細(xì)介紹如何利用jmespath實(shí)現(xiàn)json數(shù)據(jù)處理,需要的可以參考一下2022-03-03