我有一個非常簡單的問題。我想改變熊貓數據框的給定行的給定列中的值。我嘗試這樣做以下列方式:如何修改一個熊貓數據框的「單元格」中的值?
df['column3'].loc[this_date] = val
結果我得到以下警告:
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
我這個警告的解釋是,通過使用列名('column3'
)和loc
我不能真正訪問(參考)數據幀的所需單元。相反,我創建了一個對象,它是「單元」對象的副本,然後嘗試更改與此「複製對象」關聯的值。
我不明白的是,它似乎工作。儘管熊貓寫道我試圖修改副本,但我修改了原始數據框。
我的問題是如何確保我真的在做我想做的事情,以及如何以「正確」的方式做到這一點,以便熊貓不會抱怨?
它不應該是'df.loc [this_date,「欄3」] = VAL:否則,您可以通過
pd.set_option('mode.chained_assignment', None)
你的設定值的方式是好的,具有以下的放在一起抑制警告'?您的版本與文檔不同:http://pandas.pydata.org/pandas-docs/stable/indexing.html – EdChum 2014-10-30 16:14:23
它的工作原理是偶然的,它可能不起作用,這就是爲什麼您會收到警告,請嘗試我的以前的評論,應該沒有警告 – EdChum 2014-10-30 16:26:14