如何将日期列转换为datetime格式并设置为DataFrame索引?
解决年月格式日期转datetime并设为索引的问题
处理步骤:
- 用
pandas.to_datetime()转换日期列,针对"月 年"格式可自动解析,或指定格式字符串提升准确性 - 将转换后的日期列设为DataFrame的索引
完整代码示例:
import pandas as pd # 构造你的原始数据 data = { 'date': ['Jan 1749', 'Feb 1749', 'Mar 1749', 'Apr 1749', 'May 1749'], 'spots': [58.0, 62.6, 70.0, 55.7, 85.0] } df = pd.DataFrame(data) # 方式1:让pandas自动解析日期格式 df['date'] = pd.to_datetime(df['date']) # 方式2:指定格式字符串(批量处理时更稳定,%b代表缩写月份名,%Y代表4位年份) # df['date'] = pd.to_datetime(df['date'], format='%b %Y') # 将date列设为数据索引 df = df.set_index('date') # 验证转换结果 print(df.index)
补充说明:
- 转换后的datetime会自动补全日期为当月第一天(比如
Jan 1749转为1749-01-01),这是datetime类型的必要特性,不影响后续按年月维度的数据分析 - 若不需要保留原date列,可合并转换与索引设置为一步:
df = df.set_index(pd.to_datetime(df['date'], format='%b %Y')).drop('date', axis=1)
内容的提问来源于stack exchange,提问作者Bushra Jabeen
相关产品推荐
相关产品推荐

