需要在一些错误的数据中确定日期

时间:2019-05-19 16:13:51

标签: python pandas datetime replace

下载了一些YAHOO股票数据,日期被弄乱了,显示为2065-01-04,而不是1965-01-04

日期开高低 2065-01-04 84.750000 85.150002 83.769997

我尝试遍历该列,但我不知道如何仅替换2065、2066、2055等中的2,因为数据集还下载了一些YAHOO股票数据,并且日期显示为2065-01-04而不是1965-01-04

日期开高低 2065-01-04 84.750000 85.150002 83.769997

我试图遍历该列,但我不知道如何只替换2065、2066、2055中的2。更复杂的是,同一数据集也具有2000-2019,不需要被替换。但是,在进一步挖掘之后,我发现日期恢复到了1969年的正常值,即981行。

我想我可以切出1000个坏行,但我希望尽可能地挽救它们。

谢谢。

1 个答案:

答案 0 :(得分:0)

例如:

         date    price
0  2055-02-24  4124.25
1  2066-02-25  4130.67
2  2019-02-27  4180.10
3  2019-02-28  4200.05
4  2067-01-03  4210.12

通过执行以下简单操作:

df['date'] = df['date'].apply(lambda x: x.replace(x[:2],'19') if int(x[:4])>2019 else x)

         date    price
0  1955-02-24  4124.25
1  1966-02-25  4130.67
2  2019-02-27  4180.10
3  2019-02-28  4200.05
4  1967-01-03  4210.12

您应该可以通过调整自己的条件来做到这一点。但是请记住稍后再pd.to_datetime(df['date'])