未定义列如果你潜在缺陷:使用ILOC
>>> df = pd.DataFrame(np.arange(0,9), columns=['count'])
>>> df.iloc[0:5]['group'] = 'a'
>>> df
Out[346]:
count
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
没有价值将被设置设定值。但是,如果你第一次做
>>> df['group'] = 'b'
>>> df.iloc[0:5]['group'] = 'a'
>>> df
Out[353]:
count group
0 0 a
1 1 a
2 2 a
3 3 a
4 4 a
5 5 b
6 6 b
7 7 b
8 8 b
对我来说,这是意想不到的行为。无论我是否使用iloc
来筛选某些列,我都希望这能起作用。但是,如果这不起作用,至少我会期待一个错误/警告。我只希望没有值被设置,并且没有任何警告,当我使用索引设置一些值并且索引实际上不存在于左侧时。
我在
>>> pd.__version__
Out[355]: '0.14.0rc1-51-gccd593f'
不知道这是否是一个错误或没有,但'df.loc [0:5,“群”] =“A” '有和没有创建初始列 – EdChum
您是链索引,请参阅:http://pandas-docs.github.io/pandas-docs-travis/indexing。html#indexing-view-versus-copy;使用ix/loc – Jeff
我应该不会收到“SettingWithCopy”错误吗? – FooBar