pd.todatetime () ValueError: остаются не преобразованные данные: 9 - PullRequest
0 голосов
/ 23 апреля 2020

С кодом и данными ниже, первый раз, когда он не работает и перезаписан File "pandas\_libs\tslibs\strptime.pyx", line 148, in pandas._libs.tslibs.strptime.array_strptime ValueError: unconverted data remains: 9

Вот мой код. В чем проблема?

BTW python3 .8 & pandas 1.0.1

df = pd.read_csv()
print(df.process_time.unique().tolist())
df['process_time'] = pd.to_datetime(df.process_time, format='%Y%m%d')
"""
# result of print(df.process_time.unique().tolist())
[20200401, 20200402, 20200403, 20200404, 20200405, 20200406, 
20200407, 20200408, 20200409, 20200410, 20200411, 20200412, 
20200413, 20200414, 20200415, 20200416, 20200417, 20200418, 
20200419, 20200420, 20200421, 20200422, 20200423, 20200424, 
20200425, 20200426, 20200427, 20200428, 20200429, 20200430, 
20200469, 20200501, 20200502, 20200503, 20200504, 20200505, 
20200506, 20200507, 20200508, 20200509, 20200510, 20200511, 
20200512, 20200513, 20200514, 20200515, 20200516, 20200517, 
20200518, 20200519, 20200520, 20200521, 20200522, 20200523, 
20200524, 20200525, 20200526, 20200527, 20200528, 20200529, 
20200530, 20200531, 20200601, 20200602, 20200603, 20200604, 
20200605, 20200606, 20200607, 20200608, 20200609, 20200610, 
20200611, 20200612, 20200613, 20200614, 20200615, 20200616, 
20200617, 20200618, 20200619, 20200620, 20200621, 20200622, 
20200623, 20200624, 20200625, 20200626, 20200627, 20200628, 
20200629, 20200630]
"""

1 Ответ

1 голос
/ 23 апреля 2020

В вашем списке есть проблемная c дата: 20200469, где не может быть проанализирован правильный номер дня. На самом деле 69> 31, так что я думаю: 20200469 вырезано как 2020046 и понято как 6 апреля 2020 года, так что 9 не понято, следовательно, ошибка!

Возможно, вам придется исправить это точка данных (или удалить ее), и она будет работать:

df.process_time = df.process_time.replace(20200469, 20200429)  # 69 -> 29 or 19 or 09
print(pd.to_datetime(df.process_time, format='%Y%m%d'))

Вывод:

0    2020-04-01
1    2020-04-02
2    2020-04-03
3    2020-04-04
4    2020-04-05
        ...    
87   2020-06-26
88   2020-06-27
89   2020-06-28
90   2020-06-29
91   2020-06-30
Name: process_time, Length: 92, dtype: datetime64[ns]
...