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

在一个表中有不同的值。但是,其他行的其他列中的值相同(第一个 = 标题/列名称):


|---------------------|------------------|------------------|

|          A          |     B            |     C            |

|---------------------|------------------|------------------|

|          100        |     200          |     300          |

|---------------------|------------------|------------------|

|          400        |     100          |     500          |

|---------------------|------------------|------------------|

|          600        |     700          |     800          |

|---------------------|------------------|------------------|

要打印具有特定值(如 100)的所有行,我使用以下 python 代码:


import pandas as pd


df = 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          |

|---------------------|


倚天杖
浏览 122回答 2
2回答

莫回无

IIUC,使用:df.columns[df.eq(100).any()]#Index(['A', 'B'], dtype='object')要以系列形式获取输出,请调用pd.Series():pd.Series(df.columns[df.eq(100).any()])

大话西游666

是的,只需使用这样的columns属性:df[df.isin([100]).any(axis=1)].columns
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python