03 23 pandas相關總結

2021-10-22 23:25:39 字數 2786 閱讀 2311

#設定列名與資料對齊

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大佬的資料處理部分的 後面再在此基礎上修改。天池的比賽,比較貼近實際的專案,還是很有參與價值的。在這個比賽中,我也認識到了特...