Python Pandas : Select columns where a specific row satisfies a condition

标签 python pandas select

我有一个数据框 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 一起使用,并将此 bool 掩码传递给 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

关于Python Pandas : Select columns where a specific row satisfies a condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39662941/

相关文章:

python - 找出 pandas df 中滚动函数的索引

php - 即使值不存在于 where 子句中也得到返回

mysql - 高级 SELECT 查询 (HAVING)

JavaScript - 从不同的函数访问不同的变量

python - scikit-learn 随机森林的输入

python - 告诉 PyCharm 调试器不要进入装饰器

python - 从多个列创建新列,其中值不是 NaN

python - 如何使用字典键和值重命名Pandas DataFrame中的列?

python - 无法连接 'str' 和 'float' 对象?

python - Python Gekko 流程图对象中有哪些方程式?