繁体   English   中英

Python pandas:选择特定行满足条件的列

[英]Python pandas: Select columns where a specific row satisfies a condition

我有一个数据框 dfall,其中有一行标记为“row1”,其值为“foo”和“bar”。 我只想选择 dfall 的列,其中“row1”的值为“foo”。

换句话说:

dfall= pd.DataFrame([['bar','foo'],['bla','bli']], columns=['col1','col2'], index=['row1','row2'])

我想要的结果是列 'col2' 包含: ['foo','bli']

我试过:

dfall[dfall.loc['row1'].isin(['foo'])]

我收到错误

IndexingError: Unalignable boolean Series key provided

有人可以帮我命令吗? 提前致谢!

您可以将 df 与标量值进行比较,然后使用anyaxis=0并将此布尔掩码传递给ix

In [324]:
df.ix[:,(df == 'foo').any(axis=0)]

Out[324]:
     col2
row1  foo
row2  bli

分解上述内容:

In [325]:
df == 'foo'

Out[325]:
       col1   col2
row1  False   True
row2  False  False

In [326]:
(df == 'foo').any(axis=0)

Out[326]:
col1    False
col2     True
dtype: bool

使用 EdChum 的答案,使其行特定我做了: df.ix[:,(df.loc['row1'] == 'foo')]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM