【问题标题】:AttributeError: 'Int64Index' object has no attribute 'month'AttributeError:“Int64Index”对象没有属性“月”
【发布时间】:2019-07-05 11:23:27
【问题描述】:

我有一些时间序列数据,其中包含三个单独的列(日期、时间、千瓦),如下所示:

Date     Time        kW
3/1/2011 12:15:00 AM 171.36
3/1/2011 12:30:00 AM 181.44
3/1/2011 12:45:00 AM 175.68
3/1/2011 1:00:00 AM 180.00
3/1/2011 1:15:00 AM 175.68

直接从 Pandas 读取 csv 文件,我可以解析日期和时间:

df= pd.read_csv('C:\\Users\\desktop\\master.csv', parse_dates=[['Date', 'Time']])

这似乎工作得很好,但问题是我想在 Pandas 中创建另一个数据框来表示月份的数值。如果我这样做:

df['month'] = df.index.month

抛出一个错误:

AttributeError: 'Int64Index' object has no attribute 'month'

我也希望创建额外的数据框来表示时间戳日、分钟、小时...任何提示非常感谢..

【问题讨论】:

  • 由于日期是列而不是索引,因此您需要 df.Date.dt.month
  • @Vaishali 它目前是一个字符串,因此他们需要在使用 .dt 访问器之前转换为日期时间
  • 抱歉一直没看懂... :( 从 CSV 导入时我需要做些不同的事情吗?
  • @roganjosh,我相信 read_csv 中的 parse_dates 会将日期转换为日期时间。
  • 如果您希望它们成为您的索引,请使用index_col

标签: python pandas csv data-science


【解决方案1】:

您可以使用日期时间访问器并提取月份

df['month'] = df['Date_Time'].dt.month

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 2012-12-01
    • 2021-04-19
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    相关资源
    最近更新 更多