未定義列如果你潛在缺陷:使用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