pandas讀取數據:
import pandas as pd
dataPath = 'test.csv'
data = pd.read_csv(dataPath , sep=',', iterator=False,encoding='utf-8', header=None)
# 其中dataPath 代表讀取的文件的路徑,
# sep代表文件每行分隔的符號
# iterator代表文件讀取時以迭代的方式進行,設置為True可以減少內存占用
# encoding代表讀取文件的字符編碼格式
# header設置為None代表數據中沒有列名,讀取時可以忽略掉列名,默認為infer,其將第一行作為標簽
pandas查看數據:
print data.head() # 查看數據的前5行,括號中可以填數字,代表查看的行數
print data.tail() # 查看數據的后5行,括號中可以填數字,代表查看的行數
print data.shape # 查看data的大小,結果如(1024,10)
pandas刪除行、列:
# 刪除行,刪除了data中的第16、17行
data.drop([16,17],inplace=True) # inplace設置為True則原數據也改變
# 等價于
data.drop(data.index[[16,17]],inplace=True)
# 刪除列,刪除data中標簽為age的列
del data['age']
# 等價于下式,均可添加inplace參數
data.drop(['age'],axis=1)
# 刪除方法詳見 http://www.lxweimin.com/p/67e67c7034f6
pandas排序:
data = data.sort_values(by=['age', 'name']) # 根據by中的參數名進行排序
pandas合并列表
data_12 = pd.merge(data1, data2, on=['age', 'name'], how='outer')
# 將data1和data2兩個DataFrame類型的進行合并,on中代表合并時的主鍵,
# how中可選參數為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 是要抽取的行數。(例如 n=20000 時,抽取其中的 2W 行)
frac 是抽取的比列。(有一些時候,我們并對具體抽取的行數不關系,我們想抽取其中的百分比,這個時候就可以選擇使用 frac,例如 frac=0.8,就是抽取其中 80%)
replace 抽樣后的數據是否代替原 DataFrame()
weights 這個是每個樣本的權重,具體可以看官方文檔說明。
random_state 隨機數
pandas保存數據:
data.to_csv('baseinfo2.csv', index=False)
# 將data保存到baseinfo2.csv中
# 其中index設置為False為了防止寫入文件時寫入索引。