有
df = pd.DataFrame([
[-0.5, 'foo', 0],
[ 1.5, 'bar', 1],
[-1.5, 'foo', 2],
[ 0.0, 'baz', 3],
[-0.6, ' ', 4],
[-1.1, 'qux', 5],
],columns='A B C'.split())
x = df[df['C'].isin([2,3])]
print x
结果看起来像
A B C
2 -1.5 foo 2
3 0.0 baz 3
虽然如果列没有标签
df = pd.DataFrame([
[-0.5, 'foo', 0],
[ 1.5, 'bar', 1],
[-1.5, 'foo', 2],
[ 0.0, 'baz', 3],
[-0.6, ' ', 4],
[-1.1, 'qux', 5],
])
x = df[df[[2]].isin([2,3])]
print x
结果看起来像
0 1 2
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN 2
3 NaN NaN 3
4 NaN NaN NaN
5 NaN NaN NaN
pandas是否可以进行行选择,而列没有标签?
答案 0 :(得分:2)
尝试使用以下代码 -
x = df[df[2].isin([2,3])]
示例/演示 -
In [40]: x = df[df[2].isin([2,3])]
In [41]: x
Out[41]:
0 1 2
2 -1.5 foo 2
3 0.0 baz 3
我认为不同之处在于 -
In [44]: type(df[[2]])
Out[44]: pandas.core.frame.DataFrame
In [46]: type(df[2])
Out[46]: pandas.core.series.Series
答案 1 :(得分:0)
使用ix
索引器:
df[ df.ix[:,2].isin([2,3]) ]
# 0 1 2
#2 -1.5 foo 2
#3 0.0 baz 3