我不知道为什么会出现错误“ValueError:时间数据“0”与格式“%d.%m.%Y %H:%M”(匹配)”(或..“%d.%m.%Y”)不匹配。因此,我有一个测试 Dataframe :
Date DateCP Time kWh DT
0 01.11.2022 01.11.2022 01:00 0.693 01.11.2022 01:00
1 01.11.2022 01.11.2022 02:00 0.675 01.11.2022 02:00
2 01.11.2022 01.11.2022 03:00 1.044 01.11.2022 03:00
为了绝对肯定(以下建议在这里)我运行在DateCP和DT:
df['DateCP'] = df['DateCP'].apply(unidecode)
df['DT'] = df['DT'].apply(unidecode)
但发行了
df['DateCP'] = pd.to_datetime(df['DateCP'], format='%d.%m.%Y')
or
df['DT'] = pd.to_datetime(df['DT'], format='%d.%m.%Y %H:%M')
or
df['Date'] = df['Date'].apply(lambda x:datetime.strptime(x,'%d.%m.%Y'))
会导致上述错误。只有在加入errors ='coorce '时才会发生转换,并提供预期的结果:
Date DateCP Time kWh DT
0 01.11.2022 2022-11-01 01:00 0.693 2022-11-01 01:00:00
1 01.11.2022 2022-11-01 02:00 0.675 2022-11-01 02:00:00
2 01.11.2022 2022-11-01 03:00 1.044 2022-11-01 03:00:00
为什么需要强制?
1条答案
按热度按时间qhhrdooz1#
因为数据错误这里日期时间与数字
0
混合,所以如果添加errors='coerce'
参数,Pandas会将列转换为日期时间,其中NaT
表示不可解析日期您可以检查它:
最后,DataFrames看起来:
编辑:如果需要删除所有具有缺失值的行,请使用
DataFrame.dropna
: