将数据帧索引转换为日期时间

新手上路,请多包涵

如何将字符串的熊猫索引转换为日期时间格式?

我的数据 df 是这样的:

                      value
2015-09-25 00:46    71.925000
2015-09-25 00:47    71.625000
2015-09-25 00:48    71.333333
2015-09-25 00:49    64.571429
2015-09-25 00:50    72.285714

但索引是字符串类型,但我需要它是日期时间格式,因为我收到错误:

 'Index' object has no attribute 'hour'

使用时

df["A"] = df.index.hour

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

阅读 292
2 个回答

它应该按预期工作。尝试运行以下示例。

 import pandas as pd
import io

data = """value
"2015-09-25 00:46"    71.925000
"2015-09-25 00:47"    71.625000
"2015-09-25 00:48"    71.333333
"2015-09-25 00:49"    64.571429
"2015-09-25 00:50"    72.285714"""

df = pd.read_table(io.StringIO(data), delim_whitespace=True)

# Converting the index as date
df.index = pd.to_datetime(df.index)

# Extracting hour & minute
df['A'] = df.index.hour
df['B'] = df.index.minute
df

#                          value  A   B
# 2015-09-25 00:46:00  71.925000  0  46
# 2015-09-25 00:47:00  71.625000  0  47
# 2015-09-25 00:48:00  71.333333  0  48
# 2015-09-25 00:49:00  64.571429  0  49
# 2015-09-25 00:50:00  72.285714  0  50

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

您可以在初始化数据帧时 明确创建 一个 DatetimeIndex 。假设你的数据是字符串格式

data = [
    ('2015-09-25 00:46', '71.925000'),
    ('2015-09-25 00:47', '71.625000'),
    ('2015-09-25 00:48', '71.333333'),
    ('2015-09-25 00:49', '64.571429'),
    ('2015-09-25 00:50', '72.285714'),
]

index, values = zip(*data)

frame = pd.DataFrame({
    'values': values
}, index=pd.DatetimeIndex(index))

print(frame.index.minute)

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

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