我有一个大型数据框。一列是时间戳,另一列是布尔值。当我一次设置整个布尔列时,我无法再更新时间戳列中的任何内容 - 当我尝试时,它不会抱怨,但值不会改变。这是一个简单的例子:
start = pd.to_datetime('20140401')
df = pd.DataFrame(index=pd.DateRange(start,periods=1), columns=['timenow','Live'])
df.at[start,'timenow'] = datetime.today() # initial value
print(df)
df.at[start,'timenow'] = datetime.today() # this works
print(df)
df.Live = True
df.at[start,'timenow'] = datetime.today() # this doesn't work - nothing changes
print(df)
我希望看到3次不同的时间,但是当我尝试更改它时第二次保持不变:
timenow Live
2014-04-01 2014-04-24 01:33:30.037108 NaN
[1 rows x 2 columns]
timenow Live
2014-04-01 2014-04-24 01:33:30.040039 NaN
[1 rows x 2 columns]
timenow Live
2014-04-01 2014-04-24 01:33:30.040039 True
[1 rows x 2 columns]
我错过了什么?
答案 0 :(得分:1)
您可能正在处理视图而不是直接处理数据,这应该可行:
df.loc[start,'timenow']= datetime.today()
print df