删除无效值以正确地在panda中重新创建累积数据



我有一个数据集,其中包含从文本中收集的统计信息。处理方法有时无法正常工作,我需要更正输出数据。我知道它们应该是累积的,但有时我得到的数据不正确。

应随时间累积的时间序列数据。现在我得到以下示例片段:

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)

最新更新