在Pandas Dataframe中,在设置完整列后,我无法再次更新另一列

时间:2014-04-23 16:35:09

标签: python pandas

我有一个大型数据框。一列是时间戳,另一列是布尔值。当我一次设置整个布尔列时,我无法再更新时间戳列中的任何内容 - 当我尝试时,它不会抱怨,但值不会改变。这是一个简单的例子:

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]

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您可能正在处理视图而不是直接处理数据,这应该可行:

df.loc[start,'timenow']= datetime.today()
print df