For*_*ded 27 python indexing boolean pandas
对于如下的df表,
A B C D
0 0 1 1 1
1 2 3 5 7
3 3 1 2 8
Run Code Online (Sandbox Code Playgroud)
为什么在布尔索引后选择特定列需要双括号?
the [['A','C']] part of
df[df['A'] < 3][['A','C']]
Run Code Online (Sandbox Code Playgroud)
因为你没有命名列'A','C',这就是你要尝试做的会引发一个列KeyError,所以你必须使用一个iterable来从df中进行子选择.
所以
df[df['A'] < 3]['A','C']
Run Code Online (Sandbox Code Playgroud)
加薪
KeyError:('A','C')
哪个是不同的
In [261]:
df[df['A'] < 3][['A','C']]
Out[261]:
A C
0 0 1
1 2 5
Run Code Online (Sandbox Code Playgroud)
这与尝试没有什么不同:
df['A','C']
Run Code Online (Sandbox Code Playgroud)
因此,为什么你需要双方括号:
df[['A','C']]
Run Code Online (Sandbox Code Playgroud)
请注意,现代方式是使用.ix:
In [264]:
df.ix[df['A'] < 3,['A','C']]
Out[264]:
A C
0 0 1
1 2 5
Run Code Online (Sandbox Code Playgroud)
这样您就可以在视图上操作而不是复制
因为内括号只是列表的python语法(文字)。
外括号是pandas数据框对象的索引器操作。
在此用例中,inner['A', 'B']定义要作为单个参数传递给索引器操作的列列表,由外括号表示。
| 归档时间: |
|
| 查看次数: |
21640 次 |
| 最近记录: |