pandas讀取數(shù)據(jù):
import pandas as pd
dataPath = 'test.csv'
data = pd.read_csv(dataPath , sep=',', iterator=False,encoding='utf-8', header=None)
# 其中dataPath 代表讀取的文件的路徑,
# sep代表文件每行分隔的符號
# iterator代表文件讀取時以迭代的方式進行抖拦,設(shè)置為True可以減少內(nèi)存占用
# encoding代表讀取文件的字符編碼格式
# header設(shè)置為None代表數(shù)據(jù)中沒有列名升酣,讀取時可以忽略掉列名,默認為infer态罪,其將第一行作為標(biāo)簽
pandas查看數(shù)據(jù):
print data.head() # 查看數(shù)據(jù)的前5行噩茄,括號中可以填數(shù)字,代表查看的行數(shù)
print data.tail() # 查看數(shù)據(jù)的后5行复颈,括號中可以填數(shù)字绩聘,代表查看的行數(shù)
print data.shape # 查看data的大小,結(jié)果如(1024,10)
pandas刪除行耗啦、列:
# 刪除行,刪除了data中的第16凿菩、17行
data.drop([16,17],inplace=True) # inplace設(shè)置為True則原數(shù)據(jù)也改變
# 等價于
data.drop(data.index[[16,17]],inplace=True)
# 刪除列,刪除data中標(biāo)簽為age的列
del data['age']
# 等價于下式帜讲,均可添加inplace參數(shù)
data.drop(['age'],axis=1)
# 刪除方法詳見 http://www.reibang.com/p/67e67c7034f6
pandas排序:
data = data.sort_values(by=['age', 'name']) # 根據(jù)by中的參數(shù)名進行排序
pandas合并列表
data_12 = pd.merge(data1, data2, on=['age', 'name'], how='outer')
# 將data1和data2兩個DataFrame類型的進行合并衅谷,on中代表合并時的主鍵,
# how中可選參數(shù)為outer似将、inner
# outer則得到并集获黔,空缺部分為nan,inner為交集
pandas采樣
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
# 例子如下
import pandas as pd
df.sample(n=20000)
n 是要抽取的行數(shù)玩郊。(例如 n=20000 時肢执,抽取其中的 2W 行)
frac 是抽取的比列。(有一些時候译红,我們并對具體抽取的行數(shù)不關(guān)系预茄,我們想抽取其中的百分比,這個時候就可以選擇使用 frac侦厚,例如 frac=0.8耻陕,就是抽取其中 80%)
replace 抽樣后的數(shù)據(jù)是否代替原 DataFrame()
weights 這個是每個樣本的權(quán)重,具體可以看官方文檔說明刨沦。
random_state 隨機數(shù)
pandas保存數(shù)據(jù):
data.to_csv('baseinfo2.csv', index=False)
# 將data保存到baseinfo2.csv中
# 其中index設(shè)置為False為了防止寫入文件時寫入索引诗宣。