#設定列名與資料對齊
pd.set_option('display.unicode.ambiguous_as_wide', true)
pd.set_option('display.unicode.east_asian_width', true)
#顯示所有列
pd.set_option('display.max_columns', none)
#顯示10行
pd.set_option('display.max_rows', 10)
#設定顯示寬度為1000,這樣就不會在ide的輸出框中換行了
pd.set_option('display.width', 1000)
pd.merge( data1,data2,on= ..,how =..) 類似 於sql中的鏈結查詢
on -基準字段,how= left(左連線) 、inner(內連線)、right(右鏈結)、outer(外連線)
inner-內連線,它在拼接的過程中會取兩張表的交集
left-時,以左邊**的鍵為基準進行配對,如果左邊**中的鍵在右邊不存在,則用缺失值nan填充。
'right'時,以右邊**的鍵為基準進行配對,如果右邊**中的鍵在左邊不存在,則用缺失值nan填充。
'outer'是外連線,在拼接的過程中它會取兩張表的鍵(key)的並集進行拼接
選擇單列。可以直接用列名選擇,也可以通過ix、iloc、loc方法進行選擇行、列。
ix方法可以使用數值或者字元作為索引來選擇行、列。
iloc則只能使用數值作為索引來選擇行、列。
loc方法在選擇列時只能使用字元索引。
#返回pandas序列結構的類
print(df['age'])
print(df.age)
print(df.ix[:, 'age'])
print(df.loc[:, 'age'])
#返回pandas資料框類
print(df[['age']])
print(df.iloc[:, 2:3])
選擇多列。ix、iloc、loc方法都可使用。
只不過ix和loc方法,行索引是前後都包括的,而列索引則是前包後不包(與列表索引一致)。
iloc方法則和列表索引一致,前包後不包。
#列索引前包後包
print(df.ix[0:5, 0:5])
print(df.loc[0:5, ('name', 'user_id', 'age', 'gender', 'city')])
#列索引前包後不包
print(df.iloc[0:5, 0:5])
#直接列賦值
df['adult'] = df['age'] // 18
print(df)
#使用assign賦值
df = df.assign(adult=df['age'] // 18)
print(df)
刪除列--使用資料框的方法drop。
#刪除單列
print(df.drop('date', axis=1))
#刪除多列
print(df.drop(['praise', 'date'], axis=1))
單條件查詢
使用比較運算子進行查詢,如「== > < >= <= !=」。生成bool索引。
#生成bool索引
print(df.age > 17)
#返回符合條件的資料
print(df[df.age > 17])
多條件查詢
加個邏輯運算子。如「& ~ |」,代表了與、非、或。
#篩選年齡成年且性別為女性的使用者
print(df[(df.age > 17) & (df.gender == 2)])
print(df[~(df.praise == 0)])
#篩選地區在河南或湖南的使用者
print(df[(df.city == 430100) | (df.city == 410100)])
使用query進行條件查詢。
# 篩選成年使用者
print(df.query('age > 17'))
# 篩選地區在河南或湖南的使用者
print(df.query('(city == 430100) | (city == 410100)'))
分組彙總
groupby方法可以進行分組彙總。agg方法則可一次彙總多個統計量。
#對性別分組,彙總點讚數,獲取點讚數最大值
print(df.groupby('gender')[['praise']].max())
# 對性別和年齡分組,獲取點讚數的平均值
print(df.groupby(['gender', 'age'])[['praise']].mean())
# 對性別分組,獲取點讚數和年齡的平均值
print(df.groupby(['gender'])[['praise', 'age']].mean())
# 對性別分組,獲取性別的計數值
print(df.groupby(['gender'])[['gender']].count())
# 多重索引
print(df.groupby(['gender', 'date'])['age', 'praise'].agg(['mean', 'max', 'min', 'count']
更多參考: pandas相關操作
從csv或execl匯入pandas 也就是dataframe import pandas as pd csv file path 某個csv檔案.csv 這裡以csv檔案舉例,具體哪個檔案都差不多 data pd.read csv csv file path 顯然預設data都是dataframe...
Pandas相關函式用法
1 concat concat函式是在pandas底下的方法,可以將資料根據不同的軸作簡單的融合12 pd.concat objs,axis 0,join outer join axes none,ignore index false,keys none,levels none,names none...
Pandas使用總結
第一參加阿里天池舉辦的比賽,關於美年雙高 的比賽,成績0.08。因為之前只學習過理論,沒有具體做過專案,對python會一些,但對pandas基本從零開始。比賽初期基本copy大佬的資料處理部分的 後面再在此基礎上修改。天池的比賽,比較貼近實際的專案,還是很有參與價值的。在這個比賽中,我也認識到了特...