组合分配时在Pandas中设置WithCopyWarning

时间:2016-11-18 22:35:01

标签: pandas

我收到一个奇怪的SettingWithCopyWarning警告,并将其缩小到以下示例(pandas 0.19.1)

import pandas as pd
data = pd.DataFrame(index=['a','b'])
data['col1'] = [1, -1]
data['col2'] = [2, 4]
data.col2 = 0.1 * data.col2
data.col1[data.col1 < 0] = 0

如果我执行最后一行或第二行到最后一行,我不会获得SettingWithCopyWarning。以下两个片段中的任何一个都不会引发警告,但如果我同时执行这两个语句,则会收到警告。有人知道为什么吗?我应该如何修改代码,以免收到警告?我想在课堂上使用它,我无法解释这种行为。

# this works
data = pd.DataFrame(index=['a','b'])
data['col1'] = [1, -1]
data['col2'] = [2, 4]
data.col2 = 0.1 * data.col2
#data.col1[data.col1 < 0] = 0

# this also works
data = pd.DataFrame(index=['a','b'])
data['col1'] = [1, -1]
data['col2'] = [2, 4]
#data.col2 = 0.1 * data.col2
data.col1[data.col1 < 0] = 0

0 个答案:

没有答案