熊猫set_Value DatetimeIndex [Python]
问题描述:
我想从一个函数添加行的结果到我的数据框使用 df.set_Value
。熊猫set_Value DatetimeIndex [Python]
df
格式:
Count DTW
DateTime
2015-01-16 10 0
2015-01-17 28 0
使用df.setValue
dw.set_Value(idx, 'col', dtw) # idx and dtw are int values
TypeError: cannot insert DatetimeIndex with incompatible label
如何解决这个错误,或者有什么其他方法具有可比性的效率呢?
答
我觉得你有Series
,不DataFrame
,所以使用Series.set_value
索引转换为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
我从m获得idx值所以我想直接使用一个int值分配它,我认为这造成了索引的一个问题,因为它不是以数字顺序排列,而是一个DateTime索引。我希望这个澄清我的问题 – SerialDev
那么你有第一个索引'int'和'datetime'值?或者需要覆盖一些值,例如样本中有'28'?或添加新行? – jezrael
我想在具有日期时间索引的现有行上设置值,是否有可用于获取日期时间索引而不是int的迭代? – SerialDev