下载了一些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个坏行,但我希望尽可能地挽救它们。
谢谢。
答案 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'])