Pandas AttributeError: 'DataFrame' 对象没有属性 'Datetime'

edu*_*ant 1 python dataframe pandas

我正在使用 holt Winter 方法从这里获得帮助。我的数据格式是

 Year       Rate
0  2013  34.700000
1  2013  34.666667
2  2013  34.600000
3  2014  35.300000
4  2014  34.180000
Run Code Online (Sandbox Code Playgroud)

下面是我的代码

import pandas as pd 

#Importing data

df = pd.read_csv('/home/rajnish.kumar/eclipse-workspace/ShivShakti/Result/weeklyDatarateyearonly/part-00000-971f46d7-a97d-4a7e-be41-dc840c2d0618-c000.csv')

df.Timestamp = pd.to_datetime(df.Datetime,format='%Y') 
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

AttributeError: 'DataFrame' 对象没有属性 'Datetime'

des*_*aut 5

如果您的数据确实如所示(带有Rate&列Year),则您引用的列 ( Datetime) 不存在(与链接的博客文章中的数据相反,其中确实有这样的列):

import pandas as pd
data = {'Year':[2013, 2013, 2013, 2014, 2014], 'Rate':[34.7, 34.6,34.6,35.3,34.18]}
df = pd.DataFrame(data, columns=["Year", "Rate"])
df.Timestamp = pd.to_datetime(df.Datetime,format='%Y') 
# AttributeError: 'DataFrame' object has no attribute 'Datetime'
Run Code Online (Sandbox Code Playgroud)

你应该参考Year

df['Timestamp'] = pd.to_datetime(df['Year'],format='%Y') 
df
# result:
   Year   Rate  Timestamp
0  2013  34.70 2013-01-01
1  2013  34.60 2013-01-01
2  2013  34.60 2013-01-01
3  2014  35.30 2014-01-01
4  2014  34.18 2014-01-01
Run Code Online (Sandbox Code Playgroud)

  • 我仍然更喜欢 `df['Year']` 而不是 `df.Year`。Pandas 中的方法太多了,表面上看起来很混乱,更不用说 AttributeError 了 (2认同)