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如何處理丟失數據的過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章