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 在调用 pd.to_datetime() 时返回时间戳而不是 datetime 对象?
时间转换py.datetime & pd.to_datetime