1. 程式人生 > >Pandas設置值

Pandas設置值

series col clas 3-0 現在 nan pri 想要 index

1、創建數據

>>> dates = pd.date_range(20130101, periods=6)
>>> df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=[A,B,C,D])
>>> print(df)
             A   B   C   D
2013-01-01   0   1   2   3
2013-01-02   4   5   6   7
2013-01-03   8   9  10  11
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23

2、根據位置設置loc和iloc

我們可以利用索引或者標簽確定需要修改值的位置。

>>> df.iloc[2,2] = 1111
>>> df.loc[20130101,B] = 2222
>>> print(df)
             A     B     C   D
2013-01-01   0  2222     2   3
2013-01-02   4     5     6   7
2013-01-03   8     9  1111  11
2013-01-04  12    13    14  15
2013-01-05  16    17    18  19
2013-01-06  20    21    22  23

3、根據條件設置

如果現在的判斷條件是這樣, 我們想要更改B中的數, 而更改的位置是取決於 A 的. 對於A大於4的位置. 更改B在相應位置上的數為0.

>>> df.B[df.A>4] = 0
>>> print(df)
             A     B     C   D
2013-01-01   0  2222     2   3
2013-01-02   4     5     6   7
2013-01-03   8     0  1111  11
2013-01-04  12     0    14  15
2013-01-05  16     0    18  19
2013-01-06  20     0    22  23

4、按行或列設置

如果對整列做批處理, 加上一列 ‘F’, 並將 F 列全改為 NaN, 如下:

>>> print(df)
             A     B     C   D   F
2013-01-01   0  2222     2   3 NaN
2013-01-02   4     5     6   7 NaN
2013-01-03   8     0  1111  11 NaN
2013-01-04  12     0    14  15 NaN
2013-01-05  16     0    18  19 NaN
2013-01-06  20     0    22  23 NaN

5、添加數據

用上面的方法也可以加上 Series 序列(但是長度必須對齊)。

>>> df[E] = pd.Series([1,2,3,4,5,6], index=pd.date_range(20130101,periods=6))
>>> print(df)
             A     B     C   D   F  E
2013-01-01   0  2222     2   3 NaN  1
2013-01-02   4     5     6   7 NaN  2
2013-01-03   8     0  1111  11 NaN  3
2013-01-04  12     0    14  15 NaN  4
2013-01-05  16     0    18  19 NaN  5
2013-01-06  20     0    22  23 NaN  6

Pandas設置值