2017-07-29 61 views
0

我有一個列表包含我的數據框中的索引值的子集。如果數據框索引位於該列表中,並且其他位置沒有任何(''),我想返回一個值(x)。我嘗試了下面的表達式而沒有結果。如果基於索引子集的聲明 - 熊貓dataframe

df.loc[indexList]['Col'] = 'x' 

你能告訴我如何使它工作,爲什麼上面的例子沒有?

回答

0

您是否收到警告?當你犯這個錯誤時,有時熊貓會打印一個SettingWithCopyWarning。

這段代碼被打破:

df.loc[indexList]['Col'] = 'x' 

因爲df.loc[indexList]回報的副本,然後您可以修改並丟棄。

相反,嘗試:

df.loc[indexList, 'Col'] = 'x' 

然後,你將不會是「讓」,而是「設置」中的indexList子集,從而避免了複製數據的結果。

+0

您的第一個選項完美運作。第二個只有在'Col'已經定義並且觸發警告時才起作用。謝謝 ! – dominic111

+0

@ dominic111:不客氣 - 我刪除了第二個選項,我發現它現在不適合你。 –