Нужно исправить дату в некоторых плохих данных - PullRequest
0 голосов
/ 19 мая 2019

загрузили некоторые данные о запасах YAHOO, и дата была испорчена и показана как 2065-01-04 вместо 1965-01-04

Дата открытия High Low Low 2065-01-04 84.750000 85.150002 83.769997

Я попытался перебрать этот столбец, но я не знаю, как заменить только 2 в 2065, 2066, 2055 и т. Д., Поскольку в набор данных также загружены некоторые данные о запасах YAHOO, а дата испорчена и отображается как 2065-01-04 вместо 1965-01-04

Дата открытия High Low Low 2065-01-04 84.750000 85.150002 83.769997

Я пытался перебрать этот столбец, но я не знаю, как заменить только 2 в 2065, 2066, 2055. Что делает это еще более сложным, так это то, что тот же набор данных также имеет 2000-2019, что не нужно быть замененным Однако после дальнейших раскопок я обнаружил, что в 1969 году дата возвращается к норме, это строка 981.

Полагаю, я могу вырезать 1000 плохих строк, но я надеялся спасти их, если это возможно.

Заранее спасибо.

1 Ответ

0 голосов
/ 19 мая 2019

Например:

         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']) позже

...