2017-07-29 58 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:不客气 - 我删除了第二个选项,我发现它现在不适合你。 –