Pandas設置值
阿新 • • 發佈:2018-07-29
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設置值