我有一个数据集,其中包含从文本中收集的统计信息。处理方法有时无法正常工作,我需要更正输出数据。我知道它们应该是累积的,但有时我得到的数据不正确。
应随时间累积的时间序列数据。现在我得到以下示例片段:
df
date value
2021-07-20 21347.0
2021-07-24 21739.0
2021-08-02 22.0
2021-08-03 22.0
2021-08-06 22947.0
2021-08-17 4.0
正如您所看到的,数据是累积的,但有些值的定义不正确。我希望将这些值转换为nan
。
我该怎么做?预计最终结果如下:
df
date value
2021-07-20 21347.0
2021-07-24 21739.0
2021-08-02 nan
2021-08-03 nan
2021-08-06 22947.0
2021-08-17 nan
您可以使用numpy
:
df['value'] = np.where(df['value'] < df['value'][0], np.nan, df['value'])
输出:
date value
0 2021-07-20 21347.0
1 2021-07-24 21739.0
2 2021-08-02 nan
3 2021-08-03 nan
4 2021-08-06 22947.0
5 2021-08-17 nan
你能试试这个吗:
import numpy as np
df['check']=df['value'].shift(1)
df['value']=np.where(df['value']>df['check'],df['value'],np.nan)