pandas - 如何在熊猫中格式化日期时间字段
问题描述
我有以下数据框:
xl_file
Out[2]:
Day Description
Date
2011-01-26 Wednesday Republic Day
2011-03-02 Wednesday Mahashivratri
2011-04-12 Tuesday Ram Navmi
2011-04-14 Thursday Dr. Babasaheb Ambedkar Jayanti
2011-04-22 Friday Good Friday
... ...
2020-05-25 Monday Id-Ul-Fitr (Ramzan ID)
2020-10-02 Friday Mahatma Gandhi Jayanti
2020-11-16 Monday Diwali-Balipratipada
2020-11-30 Monday Gurunanak Jayanti
2020-12-25 Friday Christmas
[144 rows x 2 columns]
要将Day
列转换为datetime
字段,我使用了以下代码:
xl_file['Day'] = pd.to_datetime(xl_file['Day'], format = '%A')
我在哪里指定了格式但是我得到了这个:
xl_file
Out[4]:
Day Description
Date
2011-01-26 1900-01-01 Republic Day
2011-03-02 1900-01-01 Mahashivratri
2011-04-12 1900-01-01 Ram Navmi
2011-04-14 1900-01-01 Dr. Babasaheb Ambedkar Jayanti
2011-04-22 1900-01-01 Good Friday
... ...
2020-05-25 1900-01-01 Id-Ul-Fitr (Ramzan ID)
2020-10-02 1900-01-01 Mahatma Gandhi Jayanti
2020-11-16 1900-01-01 Diwali-Balipratipada
2020-11-30 1900-01-01 Gurunanak Jayanti
2020-12-25 1900-01-01 Christmas
[144 rows x 2 columns]
如何更改格式以便日期时间字段显示日期名称。
我试过这个:
xl_file['Day'].date.dayofweek
但这给出了一个错误:AttributeError: 'Series' object has no attribute 'date'
解决方案
您正在尝试使用字符串文本来更新吗?日期在索引中。我不确定您是否在 datetime 中有它,但我们假设它只是一个字符串。将索引转换为日期时间(时间戳)。
df.index = pd.to_datetime(df.index)
print(df)
Day
Date
2011-01-26 Wednesday
2011-03-02 Wednesday
2011-04-12 Tuesday
2011-04-14 Thursday
2011-04-22 Friday
2020-05-25 Monday
2020-10-02 Friday
2020-11-16 Monday
2020-11-30 Monday
2020-12-25 Friday
但是 Day 列仍然只是一个字符串。我们可以使用 day_name() 从日期中获取日期的名称并将其设置为列。
df["Day_Name"] = df.index.day_name()
print(df)
Day Day_Name
Date
2011-01-26 Wednesday Wednesday
2011-03-02 Wednesday Wednesday
2011-04-12 Tuesday Tuesday
2011-04-14 Thursday Thursday
2011-04-22 Friday Friday
2020-05-25 Monday Monday
2020-10-02 Friday Friday
2020-11-16 Monday Monday
2020-11-30 Monday Monday
2020-12-25 Friday Friday
如果您希望索引有天数。
df.index = df.index.day_name()
推荐阅读
- android - flutter_blue 获取当前设备蓝牙MAC地址
- pandas - 如何切片 pandas.DataFrame?
- php - 发布数据为空时如何显示所有数据mySQL
- node.js - Knex 与 Heroku Postgres 连接出现错误?
- algorithm - 寻找按字母匹配单词的数据结构
- php - 未验证 reCAPTCHA 时提交注册表单
- java - 尝试使用 Tab 在 JTextFields 之间垂直跳转(使用自定义 FocusTraversalPolicy)
- javascript - Chrome 扩展开发:不断出现 Unchecked runtime.lastError: 无法建立连接。接收端不存在
- java - 如何从java中的任何目录和对话框中读取文本文件?
- azure-active-directory - 使用 Microsoft Graph 删除对企业应用的用户或组分配