为了账号安全,请及时绑定邮箱和手机立即绑定

从表中返回列名,其中使用 python 和 pandas 找到任何行中的特定值

从表中返回列名,其中使用 python 和 pandas 找到任何行中的特定值

倚天杖 2021-11-30 16:24:23
在一个表中有不同的值。但是,其他行的其他列中的值相同(第一个 = 标题/列名称):|---------------------|------------------|------------------||          A          |     B            |     C            ||---------------------|------------------|------------------||          100        |     200          |     300          ||---------------------|------------------|------------------||          400        |     100          |     500          ||---------------------|------------------|------------------||          600        |     700          |     800          ||---------------------|------------------|------------------|要打印具有特定值(如 100)的所有行,我使用以下 python 代码:import pandas as pddf = pd.read_excel('test.xlsx', sheet_name='test1')dfObject = df[df.isin([100]).any(axis=1)]print(dfObject)导致这样的输出:|---------------------|------------------|------------------||          A          |     B            |     C            ||---------------------|------------------|------------------||          100        |     200          |     300          ||---------------------|------------------|------------------||          400        |     100          |     500          ||---------------------|------------------|------------------|有什么方法可以只打印特定值所在的列名(也有不同的):|---------------------||          A          ||---------------------||          B          ||---------------------|
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

IIUC,使用:


df.columns[df.eq(100).any()]


#Index(['A', 'B'], dtype='object')

要以系列形式获取输出,请调用pd.Series():pd.Series(df.columns[df.eq(100).any()])


查看完整回答
反对 回复 2021-11-30
?
大话西游666

TA贡献1817条经验 获得超14个赞

是的,只需使用这样的columns属性:

df[df.isin([100]).any(axis=1)].columns


查看完整回答
反对 回复 2021-11-30
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信