pd.datetime 没有正确索引

Posted

技术标签:

【中文标题】pd.datetime 没有正确索引【英文标题】:pd.datetime not indexing correctly 【发布时间】:2019-06-26 10:51:37 【问题描述】:

我有餐厅每笔交易日期的数据集。我尝试将日期设置为索引,然后用 df.to_datetime 进行转换:

df['dateTransaction'] = pd.to_datetime(df['dateTransaction'])
df.info()

我真的得到了 datetime64[ns] 的“dateTransaction”类型。但是我尝试使用 df = df.set_index('dateTransaction') 设置索引 但我的数据集没有按日期正确排序。 enter image description here 请建议如何以排序方式按日期索引数据帧?

【问题讨论】:

使用df.sort_index(inplace=True)df = df.sort_index() ***.com/questions/40262710/… 是一个不错的副本 【参考方案1】:

如果你是从 CSV 读取的,你也可以试试

data=pd.read_csv('SomeData.csv',index_col=['Date'],parse_dates=['Date'],dayfirst=True)

如果没有dayfirst=True,则将天数读取为月份,反之亦然

【讨论】:

【参考方案2】:

当您set_index 它从不重新排列行时,它只是将一列“移动”到索引。所以你必须明确排序(在set_index之前或之后):

df = df.set_index('dateTransaction').sort_index()
# or
df = df.sort_values("dateTransaction").set_index('dateTransaction')

【讨论】:

以上是关于pd.datetime 没有正确索引的主要内容,如果未能解决你的问题,请参考以下文章

pandas datetime 怎么提取月份

为啥 pandas 在调用 pd.to_datetime() 时返回时间戳而不是 datetime 对象?

时间转换py.datetime & pd.to_datetime

pd.to_datetime时间object转换datetime实例

使用 pd.to_datetime 处理多种日期时间格式

如何使用 pd.to_datetime() 设置频率?