0
我有一个列表包含我的数据框中的索引值的子集。如果数据框索引位于该列表中,并且其他位置没有任何(''),我想返回一个值(x)。我尝试了下面的表达式而没有结果。如果基于索引子集的声明 - 熊猫dataframe
df.loc[indexList]['Col'] = 'x'
你能告诉我如何使它工作,为什么上面的例子没有?
我有一个列表包含我的数据框中的索引值的子集。如果数据框索引位于该列表中,并且其他位置没有任何(''),我想返回一个值(x)。我尝试了下面的表达式而没有结果。如果基于索引子集的声明 - 熊猫dataframe
df.loc[indexList]['Col'] = 'x'
你能告诉我如何使它工作,为什么上面的例子没有?
您是否收到警告?当你犯这个错误时,有时熊猫会打印一个SettingWithCopyWarning。
这段代码被打破:
df.loc[indexList]['Col'] = 'x'
因为df.loc[indexList]
回报的副本,然后您可以修改并丢弃。
相反,尝试:
df.loc[indexList, 'Col'] = 'x'
然后,你将不会是“让”,而是“设置”中的indexList子集,从而避免了复制数据的结果。
您的第一个选项完美运作。第二个只有在'Col'已经定义并且触发警告时才起作用。谢谢 ! – dominic111
@ dominic111:不客气 - 我删除了第二个选项,我发现它现在不适合你。 –