Pandas数据帧列计算

时间:2014-11-29 15:50:53

标签: python pandas

我想用一个calulation(这是comlun值的乘法)替换列中的值。 像这样:

    df.loc[:, 'cfit'] = df['cfit'] * df['risk_nr']

我收到以下消息: 正在尝试在DataFrame的切片副本上设置值。 尝试使用.loc [row_indexer,col_indexer] = value 请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy   self.obj [item] = s

这是大熊猫的正确或错误警告吗? 日Thnx

1 个答案:

答案 0 :(得分:1)

就这样做:

df['cfit'] = df['cfit'] * df['risk_nr']

甚至:

df['cfit'] *= df['risk_nr']

关于你的问题:我认为在这种特殊情况下这是一个错误的警告,因为df.loc[:, 'cfit']应该返回一个视图而不是一个副本。您可以使用以下命令关闭警告:

pd.set_option('chained_assignment', None)