【问题标题】:Python Pandas create Date Time index from datePython Pandas 从日期创建日期时间索引
【发布时间】:2017-08-13 10:40:31
【问题描述】:

我有以下 python pandas 数据框 df:

    DATES       Sales
0   1/6/2013    5676
1   1/8/2014    45746
2   1/10/2015   42658
3   1/14/2015   890790
4   1/16/2016   5764
5   1/20/2014   7898

我需要将 DATES 更改为日期时间索引,以便重新采样。

但是当我这样做时

pd.to_datetime(df,infer_datetime_format=True)

我收到以下错误: ValueError:组装映射至少需要指定 [年、月、日]:缺少 [日、月、年]

【问题讨论】:

  • 您需要指定日期出现的列:pd.to_datetime(df['DATES'])

标签: python date pandas datetime


【解决方案1】:

你应该明确定义格式

pd.to_datetime(df['DATES'],format='%m/%d/%Y')

不要让 Pandas 猜测

to_datetime() documentation

将日期时间设置为索引

df = df.set_index(pd.DatetimeIndex(df['DATES']))

适用于未填充的月份和日期:

import pandas as pd
d = {'1/6/2013' : 5676}
df = pd.DataFrame(d.items(), columns=['DATES', 'Sales'])
df['DATES'] = pd.to_datetime(df['DATES'],format='%m/%d/%Y')

0 2013-01-06

【讨论】:

  • 谢谢,当我使用 pd.to_datetime(df['DATES'],format='%m/%d/%Y') 时,它不会更新数据框中的日期,但是当我做 df = pd.to_datetime(df['DATES'],format='%m/%d/%Y'); 时创建一个系列销售列消失
  • 您必须分配单个列 df['DATES'] 而不是整个数据框 df。查看我更新的代码 sn-p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 2015-02-21
  • 2022-01-10
  • 2014-03-07
  • 2017-01-03
  • 2020-10-09
相关资源
最近更新 更多