1. 程式人生 > >Python資料處理之(十 二)Pandas 設定值

Python資料處理之(十 二)Pandas 設定值

一、建立資料

我們可以根據自己的需求, 用 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如何處理丟失資料的過程。