Python数据处理之(十 二)Pandas 设置值

版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/PoGeN1/article/details/84325421

一、创建数据

我们可以根据自己的需求, 用 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如何处理丢失数据的过程。

猜你喜欢

转载自blog.csdn.net/PoGeN1/article/details/84325421
今日推荐