将Pandas数据帧中的行设置为NaN,从索引等于某个值开始

时间:2018-01-24 17:31:23

标签: python pandas

给出一个像这样的pandas数据框:

                  A  
year
2018-01-01        10
2018-01-02        15
2018-01-03        10
2018-01-04        19
2018-01-05        30
2018-01-06        23
2018-01-07        10
2018-01-08        56
2018-01-09        20
2018-01-10        10

如何从索引等于某个值的位置开始设置ANaN的值,例如2018-01-07

                  A  
year
2018-01-01        10
2018-01-02        15
2018-01-03        10
2018-01-04        19
2018-01-05        30
2018-01-06        23
2018-01-07        NaN
2018-01-08        NaN
2018-01-09        NaN
2018-01-10        NaN

2 个答案:

答案 0 :(得分:0)

使用

In [851]: df.loc['2018-01-07':] = np.nan

In [852]: df
Out[852]:
               A
year
2018-01-01  10.0
2018-01-02  15.0
2018-01-03  10.0
2018-01-04  19.0
2018-01-05  30.0
2018-01-06  23.0
2018-01-07   NaN
2018-01-08   NaN
2018-01-09   NaN
2018-01-10   NaN

答案 1 :(得分:0)

下面的代码为您提供了所需的结果:

    import numpy as np
df.set_index("d", inplace=True)
df['A'].loc['2015-01-08':]=np.nan


             A
d   
2015-01-01  0.0
2015-01-02  1.0
2015-01-03  2.0
2015-01-04  3.0
2015-01-05  4.0
2015-01-06  5.0
2015-01-07  6.0
2015-01-08  NaN
2015-01-09  NaN
2015-01-10  NaN

如果这是你想要的,请选择答案。

由于