python - 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]
?
解决方案
您需要手动执行:
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]
推荐阅读
- c++ - 为什么纹理只出现在第一象限
- mysql - Mysql Master 主复制错误主/从
- wordpress - 联系表格 7 get_posted_data 在钩子 wpcf7_before_send_mail 中不起作用
- vba - MS Word 是否有相当于 ExecuteExcel4Macro
- meteor - 如何在accounts-base包中创建一个新的passwordSignupFields?
- javascript - 使用纯 JavaScript 屏蔽名字和姓氏
- ruby-on-rails - 如何跳过 CSV 中不是 Rails 的“标题行”的第一行?
- python - 如何构建一个独立的 Scrapy Spider?
- java - 使用 Java Spring Boot 创建 MySQL JSON 列
- chromium - 使用 Puppeteer 移除 kiosk 模式 Chromium 中的灰条