我迄今爲止由EdChum提供以下代碼:Python的DatetimeIndex錯誤 - 類型錯誤:(「不能做標籤索引上的<class‘pandas.tseries.index.DatetimeIndex’
In [1]:
df = pd.DataFrame({'a': [None] * 6, 'b': [2, 3, 10, 3, 5, 8]})
df["c"] =np.NaN
df["c"][0] = 1
df["c"][2] = 3
def func(x):
if pd.notnull(x['c']):
return x['c']
else:
return df.iloc[x.name - 1]['c'] * x['b']
df['c'] = df.apply(func, axis =1)
df['c'] = df.apply(func, axis =1)
df['c'] = df.apply(func, axis =1)
df
Out[1]:
a b c
0 None 2 1
1 None 3 3
2 None 10 3
3 None 3 9
4 None 5 45
5 None 8 360
這也工作得很好,但只要我改變dateframe的指數= DF如下:
rng = pd.date_range('1/1/2011', periods=6, freq='D')
df = pd.DataFrame({'a': [None] * 6, 'b': [2, 3, 10, 3, 5, 8]},index=rng)
我得到以下錯誤:TypeError: ("cannot do label indexing on <class 'pandas.tseries.index.DatetimeIndex'> with these indexers [2011-01-01 00:00:00] of <class 'pandas.tslib.Timestamp'>", u'occurred at index 2011-01-02 00:00:00')
什麼是這裏的問題如何d? o我需要調整代碼才能使用da DatetimeIndex工作?
你在熊貓0.16.1和numpy上運行這個工程的版本是什麼版本1.9.2 – EdChum
啊我看到這個問題,這裏的問題是,在索引是int64之前,現在是datetimeindex,所以這不起作用 – EdChum
我使用熊貓0.16.0和numpy 1.9.2。我需要更新熊貓嗎? –