1. 程式人生 > >pandas入門 panda速查速記

pandas入門 panda速查速記

#資料讀取與匯出
import pandas as pd
import numpy as np
pd.read_csv(filename,sep='')#從csv檔案匯入資料
pd.read_csv(filename,sep='',header=none)#匯入沒有頭的檔案
#構造DataFrame資料
df=pd.DataFrame([[1,2,3],[4,5,6]],columns=['f1','f2','f3'])

#匯出資料
df.to_csv(filename,index=False)

#資料檢視
df.head(n)#檢視資料的前n行
df.tail(n)#檢視DataFrame物件的最後n行
df.shape()#檢視行數和列數
df.info()#檢視索引、資料型別和記憶體資訊
df.describe()# 檢視數值型列的彙總統計
s=df['user_id']#根據列名以Serise的形式返回列
df[['user_id','item_id']]#以DataFrame形式返回多列
s.iloc['index_one']#按索引選取 資料
df.iloc[0,:]#返回第一行
df.iloc[0,0]#返回第一列的第一個元素
df.sample(frac=0.5)#取樣

#資料整理
pd.isnull()#檢查DataFrame物件中的控制,並返回一個Boolean陣列
df.dropna(axis=0)#刪除所有包含空值的行
df.dropna(axis=1)#刪除所有包含空值的列
df.dropna(axis=1,thresh=n)#刪除所有小於n個非空值的行
df.fillna(x)#用x替換DataFrame物件中的所有的空值
df.fillna(df.median)#中位數填充
s.replace(1,'one')#用'one'代替所有等於1的值
df.columns= ['a','b','c']#重新命名列名
df.rename(columns=lambda x:x+1)#批量重新命名列名
df.rename(index=lambda x:x+1 )#批量重新命名索引

#資料處理
df[df[col]>0.5]#選擇col列的值大於0.5的行
df.sort_values(by='col',ascending=True)#按照列col排序資料,預設升序排序

#資料合併
df1.append(df2)#將df2中的行新增到df1的尾部
pd.concat([df1,df2],axis=1)#按列合併
pd.concat([df1,df2],axis=0)#按行合併

df.corr()#返回所有列與列之間的相關係數
df.count()#返回每一列中的非空值的個數
df.dtypes()#檢視資料型別
df['uesr_id'].hist()#檢視變數分佈
df.isnull().sum()#檢視每一列缺失值的情況
df['user_id'].unique()#檢視資料取值


a.sort_index(axis=1,ascending=False)#axis=1表示對所有的columns進行排序
a.sort(column='x')#對DataFrame中的值進行排序
選取物件
a['x']#選取特定的列,
選取行資料,通過切片[]來選擇
a[0:3]#選取前三行的資料

loc是通過 行標籤來選擇資料
iloc通過行號索引行資料
ix通過行標籤或者行號索引行資料(基於loc和iloc的混合)
a.loc['one']  #預設表示選取行為'one'的行
a.loc[:,'a','b']表示選取所有行以及columns為a,b的列
a.loc[['one','two'],['a','b']]表示選取‘one’和‘two’這兩行以及columns為ab的列
a.loc[0]表示選取第一行的資料

條件選擇
a[a.c>0]表示選擇c列中大於0 的資料
賦值
a.loc[:,['a','c']=9 即將a和c列的所有行中的值設定為9

a.dropna(how='any')表示去掉包含缺失值的行
a.fillna(value=x) 表示用值為x 的數來對缺失值 進行填充

統計某一列x中格格之出現的次數 a['x'].value_counts()

對資料應用函式 a.apply(lambda x :x.max()-x.mnin())表示 返回所有列中最大值-最小值的差