2016-08-19 31 views
3

df.set_Valueを使用して、関数から行方向の結果を自分のデータフレームに追加しようとしています。フォーマットのPandas set_Value with DatetimeIndex [Python]

df

Count DTW 
DateTime   
2015-01-16 10 0 
2015-01-17 28 0 

dw.set_Value(idx, 'col', dtw) # idx and dtw are int values 

TypeError: cannot insert DatetimeIndex with incompatible label 

df.setValueを使用するには、どのように私はこのエラーを解決するのですか、同等の効率でどのような代替方法はありますか?

答えて

4

私はあなたがSeries、ないDataFrameを持っていると思うので、インデックスとSeries.set_valueを使用するには、より多くの標準的な方法がixまたはilocを使用しているdatetime

dw = pd.Series([-2374], index = [pd.to_datetime('2015-01-18')]) 
dw.index.name = 'DateTime' 
print (dw) 
DateTime 
2015-01-18 -2374 
dtype: int64 

print (dw.set_value(pd.to_datetime('2015-01-19'), 1)) 
DateTime 
2015-01-18 -2374 
2015-01-19  1 
dtype: int64 

print (dw.set_value(pd.datetime(2015, 1, 19), 1)) 
DateTime 
2015-01-18 -2374 
2015-01-19  1 
dtype: int64 

に変換:

print (dw) 
      Count DTW 
DateTime    
2015-01-16  10 0 
2015-01-17  28 0 

dw.ix[1, 'DTW'] = 10 
#dw.DTW.iloc[1] = 10 
print (dw) 
      Count DTW 
DateTime    
2015-01-16  10 0 
2015-01-17  28 10 
+0

I idx値をaから取得していますint型の値を使用して直接割り当てたいので、インデックスで問題が発生したと思います。数値型の順序ではなく、DateTime型のインデックスです。私はこれが私の質問を明確にしたことを願っています – SerialDev

+0

'int'と' datetime'値の最初のインデックスはありますか?または、値を上書きする必要があります。サンプルで「28」?または新しい行を追加しますか? – jezrael

+0

datetimeインデックスを持つ既存の行に値を設定したいのですが、intとは対照的にdatetimeインデックスを取得するために使用できるiterableはありますか? – SerialDev

関連する問題