Python資料處理之(十 二)Pandas 設定值
阿新 • • 發佈:2018-11-24
一、建立資料
我們可以根據自己的需求, 用 pandas 進行更改資料裡面的值, 或者加上一些空的,或者有數值的列.
首先建立了一個 6X4 的矩陣資料。
>>> import pandas as pd
>>> import numpy as np
>>> dates=pd.date_range('20181121',periods=6)
>>> df=pd.DataFrame(np.arange(24).reshape((6,4)),index=dates,columns=['A','B','C', 'D'])
>>> print(df)
A B C D
2018-11-21 0 1 2 3
2018-11-22 4 5 6 7
2018-11-23 8 9 10 11
2018-11-24 12 13 14 15
2018-11-25 16 17 18 19
2018-11-26 20 21 22 23
二、根據位置設定 loc 和 iloc
我們可以利用索引或者標籤確定需要修改值的位置
>>> df.iloc[2,2]=111
>>> df.loc['20181121','B']=2222
>>> print(df)
A B C D
2018-11-21 0 2222 2 3
2018-11-22 4 5 6 7
2018-11-23 8 9 111 11
2018-11-24 12 13 14 15
2018-11-25 16 17 18 19
2018-11-26 20 21 22 23
三、根據條件設定
如果現在的判斷條件是這樣, 我們想要更改B中的數, 而更改的位置是取決於 A 的. 對於A大於4的位置. 更改B在相應位置上的數為0.
>>> df.B[df.A>0]=0
>>> df
A B C D
2018-11-21 0 2222 2 3
2018-11-22 4 0 6 7
2018-11-23 8 0 111 11
2018-11-24 12 0 14 15
2018-11-25 16 0 18 19
2018-11-26 20 0 22 23
四、按行或列設定
如果對整列做批處理, 加上一列 ‘F’
, 並將F
列全改為 NaN
, 如下:
>>> df['F']=np.nan
>>> df
A B C D F
2018-11-21 0 2222 2 3 NaN
2018-11-22 4 0 6 7 NaN
2018-11-23 8 0 111 11 NaN
2018-11-24 12 0 14 15 NaN
2018-11-25 16 0 18 19 NaN
2018-11-26 20 0 22 23 NaN
五、新增資料
用上面的方法也可以加上Series
序列(但是長度必須對齊)。
>>> df['E']=pd.Series([1,2,3,4,5,6],index=pd.date_range('20181121',periods=6))
>>> df
A B C D F E
2018-11-21 0 2222 2 3 NaN 1
2018-11-22 4 0 6 7 NaN 2
2018-11-23 8 0 111 11 NaN 3
2018-11-24 12 0 14 15 NaN 4
2018-11-25 16 0 18 19 NaN 5
2018-11-26 20 0 22 23 NaN 6
這樣我們大概學會了如何對DataFrame
中在自己想要的地方賦值或者增加資料。 下次課會將pandas
如何處理丟失資料的過程。