panda dataframe的一些常用操作方法

huangrs098發表於2020-11-04

1 定義生成dataframe

import pandas as pd
df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[3,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

輸出:


	A	B	C	D	E	F
0	1	4	3	1	5	7
1	2	5	8	3	3	4
2	3	6	9	5	6	3

2 根據列的值,取多行資料

df[df['A']==2]
或
df.loc[df['A']==2]

輸出

	A	B	C	D	E	F
1	2	5	8	3	3	4

3 篩選某一列為某些取值的行資料

df[df['A'].isin(['1', '3'])]

輸出

	A	B	C	D	E	F
0	1	4	3	1	5	7
2	3	6	9	5	6	3

4 對nan值進行填充0
空值:在pandas中的空值是""
缺失值:在dataframe中為nan或者naT(缺失時間),在series中為none或者nan即可

import numpy as np
df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[np.nan,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
# 輸出:
   A  B    C  D  E  F
0  1  4  NaN  1  5  7
1  2  5  8.0  3  3  4
2  3  6  9.0  5  6  3

找到存在空值nan的行

print(df[df.isnull().T.any()])
# 輸出
   A  B   C  D  E  F
0  1  4 NaN  1  5  7

其中,isnull()能夠判斷資料中元素是否為空值;T為轉置;any()判斷該行是否有空值

用0填充空值、

print(df.fillna(value=0))

# 輸出:
   A  B    C  D  E  F
0  1  4  0.0  1  5  7
1  2  5  8.0  3  3  4
2  3  6  9.0  5  6  3

5 函式具體解釋
來自部落格:https://blog.csdn.net/lwgkzl/article/details/80948548
df.dropna()

df.fillna()

df.isnull()

df.isna()

DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
函式作用:刪除含有空值的行或列

axis:維度,axis=0表示index行,axis=1表示columns列,預設為0

how:"all"表示這一行或列中的元素全部缺失(為nan)才刪除這一行或列,"any"表示這一行或列中只要有元素缺失,就刪除這一行或列

thresh:一行或一列中至少出現了thresh個才刪除。

subset:在某些列的子集中選擇出現了缺失值的列刪除,不在子集中的含有缺失值得列或行不會刪除(有axis決定是行還是列)

inplace:刷選過缺失值得新資料是存為副本還是直接在原資料上進行修改。

相關文章