Python Pandas创建日期时间索引从日期

3
我有以下的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

我需要将日期更改为日期时间索引,以便可以重新采样它。
但是当我这样做时,
pd.to_datetime(df,infer_datetime_format=True)

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

1
你需要指定日期所在的列:pd.to_datetime(df['DATES']) - root
1个回答

6

您应该明确定义格式

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

不要让Pandas猜测

to_datetime()文档

将日期时间设置为索引

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年1月6日


谢谢。当我使用pd.to_datetime(df['DATES'],format='%m/%d/%Y')时,它不会更新数据框中的日期,而是创建一个系列。当我执行df = pd.to_datetime(df['DATES'],format='%m/%d/%Y')时,销售列消失了。 - jeangelj
你需要分配一个单独的列 df['DATES'] 而不是整个数据框 df。请查看我的更新代码片段。 - philshem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接