获取包含pandas中特定值的列名

时间:2018-06-18 08:24:37

标签: python python-2.7 pandas

我想根据pandas中特定列中包含的特定值,从整个数据库中获取列名(假设数据库包含超过100行且超过50列)。

这是我的代码:

import pandas as pd
df = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]})
pos = 2
response = raw_input("input")
placeholder = (df == response).idxmax(axis=1)[0]
print df
print (placeholder)

尝试了很多。 。

实施例: 当用户输入2时;它会显示答案:A 如果输入是4;反馈将是B. 如果7则回复将是C

尝试了iloc,但我看到那里必须注意到行。

请帮助亲爱的伙计们。 。 。 。 。 谢谢 。 。 。 :)

2 个答案:

答案 0 :(得分:1)

试试这个

for i in df.columns:
    newDf = df.loc[lambda df: df[i] == response]
    if(not newDf.empty):
        print(i)

答案 1 :(得分:0)

首先,您应该将输入视为整数。因此,请使用raw_input

而不是input
response = input("input")

之后,您可以使用any

df[df==YOUR_VALUE].any()

这将返回一个带有列名的布尔Series,以及它们是否包含您要查找的值。

在你的例子中:

df = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6], 'C':[7,8,9]})
response = input("input")
placeholder = df[df==response].any()

对于输入4,输出将为:

A    False
B     True
C    False
dtype: bool