2017-07-29 17 views
0

パンダ時系列リサンプリング:KeyError例外:「[ 『年』 『日』月 ']でないインデックスに」

を助けてください、私はリサンプルに失敗したデータを試してみました。 DatetimeIndexが適用されると、上記のエラーが生成されます。タイムスタンプが切り捨てられ、HH:MM:SSが削除されます。それでもデータはDatetimeオブジェクトとして認識されません。前もって感謝します。

ソースファイルには、問題は、あなたがdf3[['year','month','day']]としてdf3に存在しない3つの列を供給pd.to_datetime()の誤った使用であるhere

import pandas as pd 
import numpy as np 

df= pd.read_csv('20170713.csv') 
df2= df.loc[:,['sen_id', 'pos_id', 'heat_val', 'sat_val', 'timestamp']] 
cols = df2.columns.tolist() 
cols = cols[-1:] + cols[:-1] 
df2 = df2[cols] 
#print(df2.head()) 

df3 = df2.set_index(['timestamp']) 
df3.index = pd.DatetimeIndex(df3.index) 
print(df3.head()) 

pd.to_datetime(df3[['year', 'month', 'day']]) 
df3.resample('1H').mean() 
print(df3) 
+0

yyyy-mm-ddの日時ですか?最終的な成果をどのようにしたいかのサンプルを提供できますか? – DJK

+0

答えをありがとう!多くの愛:-) – Venedictos

答えて

0

見つけることができます。代わりにseriesを提供したい場合。そして、あなたはとてもあなたがインデックスをしたい、読みやすくするために、あなたのコードは、実際にあまりにもダウン凝縮させることができる一例としてのあなたの日付のstrptime形式

df= pd.read_csv('20170713.csv') 
df2= df.loc[:,['sen_id', 'pos_id', 'heat_val', 'sat_val', 'timestamp']] 
cols = df2.columns.tolist() 
cols = cols[-1:] + cols[:-1] 
df2 = df2[cols] 
#print(df2.head()) 

df3 = df2.set_index(['timestamp']) 
#df3.index = pd.DatetimeIndex(df3.index) 
#print(df3.head()) 

#pd.to_datetime(df3[['year', 'month', 'day']]) 
df3.index = pd.to_datetime(df3.index,format='%d/%m/%Y %H:%M') 
df3 = df3.resample('1H').mean() 
print(df3) 

に対応引数format='%d/%m/%Y %H:%M'を、provdeたい

df = pd.read_csv('20170713.csv') 

#Preserve desired columns and reorder as df2 
df2 = df[['timestamp', 'sen_id', 'pos_id', 'heat_val', 'sat_val']] 

#set timestamp as index and convert to datetime 
df2.set_index(['timestamp'],drop=True,inplace=True) 
df2.index = pd.to_datetime(df2.index,format='%d/%m/%Y %H:%M') 

#resample 
df3 = df2.resample('1H').mean() 

print df3 
+0

私はとても感謝しています。良い仕事を続けてください。 pd.to_datetimeの使用は少し混乱しました。どうもありがとうございます!多くの愛! – Venedictos

+0

問題ありません!喜んでも助けて – DJK

関連する問題