首页 > 解决方案 > Python Pandas:将 DD.MM.YYYY 转换为日期时间

问题描述

我有一个看起来像这样的 DataFrame:

date       | ...
09.01.2000 |
02.03.2001 | ...

格式为 DD.MM.YYYY。我只想选择 2014 年的数据(例如)。我使用以下方法将它们转换为日期pd.to_datetime时间:

date = pd.to_datetime(table["date"], format = "%d.%m.%Y")

然后我希望我的表采用 3 个新列Day, Month, Year。我愿意:

table[["day", "month", "year"]] = date.dt.day, date.dt.month, date.dt.year

但它会引发错误:Must have equal len keys and value when setting with an ndarray 如何正确将它们转换为日期时间以供使用df.loc[df["year"] == 2014]

标签: pythonpandas

解决方案


您需要手动执行:

table['day'], table['month'], table['year'] = date.dt.day, date.dt.month, date.dt.year

解释date.dt.day, date.dt.month, date.dt.year是具有长度的元组的简写3,很可能不同于len(table).

另一方面,既然你已经有了date,你也可以切片:

table[date.dt.year==2014]

推荐阅读