删除熊猫中 DateTime 索引的时间部分

新手上路,请多包涵

当我通过他们的 API 查询服务以获取每日数据时,他们会抛出一个时间部分,该时间部分等于进行查询的任何时间。所以当我在 14:54:36 调用函数时,我的 pandas 数据框看起来像这样 -

 2018-05-16 14:54:36  1024.75  1008.25      ...        39221        242897
2018-05-17 14:54:36  1017.00  1002.00      ...        35361        241132
2018-05-18 14:54:36  1015.75  1002.75      ...        49090        242938
2018-05-21 14:54:36  1034.50  1020.75      ...        56950        243316
2018-05-22 14:54:36  1043.75  1028.50      ...        49724        247874
2018-05-23 14:54:36  1049.00  1036.25      ...        46256        253609
2018-05-24 14:54:36  1059.75  1047.00      ...        65352        259617

由于这是每日数据,因此时间部分无用。当我做:

 data = pd.read_csv(StringIO(data), index_col=0, header=None,names=['High','Low','Open','Close','Volume','OpenInterest'])
data.index = pd.to_datetime(data.index,format="%Y-%m-%d")

该格式似乎不起作用。 DateTime 索引仍然包含时间。知道如何删除时间部分吗?

原文由 bloodynri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 436
2 个回答

您可以维护日期时间功能并将时间部分设置为 00:00:00 normalize

 df.index = df.index.normalize()

# For non-Index datetime64[ns] dtype columns you use the `.dt` accessor:
# df['column'] = df['column'].dt.normalize()


 import pandas as pd
df = pd.DataFrame([1, 2, 3, 4], index=pd.date_range('2018', periods=4, freq='H'))

df.index = df.index.normalize()

print(df)
#            0
#2018-01-01  1
#2018-01-01  2
#2018-01-01  3
#2018-01-01  4

查看索引:

 df.index
#DatetimeIndex(['2018-01-01', '2018-01-01', '2018-01-01', '2018-01-01'], dtype='datetime64[ns]', freq=None)

这些值是时间戳:

 df.index[0]
#Timestamp('2018-01-01 00:00:00')

原文由 ALollz 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 date 属性:

 df.index = df.index.date

例子:

 >>> df = pd.DataFrame([1, 2, 3, 4], index=pd.date_range('2018', periods=4, freq='H'))
>>> df.index = df.index.date
>>> df
            0
2018-01-01  1
2018-01-01  2
2018-01-01  3
2018-01-01  4

注意:这会让你在 Pandas 中得到 object 。所有属性都 在这里。从技术上讲,它是原生 Python datetime.date 对象的数组。请参阅 ALollz 的回答以保持 dtype datetime-like。

原文由 Brad Solomon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题