1. 程式人生 > >Pandas中常用的方法

Pandas中常用的方法

1、pandas.Series

為資料分配索引,例如:

data=np.random.randn(5)
pd.Series(data, index=['a', 'b', 'c', 'd', 'e'])
>>>
a   -0.287461
b    0.736157
c    1.759875
d   -0.238167
e    0.621458
dtype: float64
pd.Series(np.random.randn(5))
>>>
0   -0.334205
1   -1.033102
2   -0.349577
3   -1.459086
4    0.148646
dtype: float64

2、pandas.concat : 將多個DataFrame融合

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3']},
                    index=[0, 1, 2, 3])
df2 = pd.DataFrame({'D': ['D0', 'D1', 'D2', 'D3']},
                    index=[0, 1, 2, 3])
s=pd.concat([df1,df2], axis=1
) # 1是在X軸方向合併,0是在Y軸方向合併

3、刪除某一列:drop

df.drop([‘column’],axis=1) # 臨時刪除
df.drop([‘column’],axis=1,inplace=True) <—–> df = df.drop([‘column’],axis=1)

4、型別轉換:astype

df[‘column’]=df[‘column’].astype(‘int’)
df[‘column’]=df.column.astype(int)

5、填充空值:fillna

df[‘column’].fillna(value=0, inplace=True)

6、將某一列指定的值替換

df[‘column’][df[‘column’]==value1]=value2

7、兩表連線查詢

類似於將SQL語句:SELECT df1.ID FROM df1, df2 WHERE df1.ID=df2.ID轉換成pandas語句
df1[df1['ID']==df2['ID']]這個辦法表df1, df2必須有相同的index
否則會出現

ValueError: Can only compare identically-labeled Series objects
錯誤

8、選擇指定資料型別的列

col_dates = df.dtypes[df.dtypes == 'datetime64[ns]'].index
for d in col_dates:
    df[d] = df[d].dt.to_period('M')

9、某列的眾數:df.emp_length.median()

df['emp_length'] = df['emp_length'].fillna(df.emp_length.median())