在PandasDataFrame中的任意位置搜索值

vecaoik1  于 2022-12-02  发布在  其他
关注(0)|答案(4)|浏览(127)

这似乎是一个简单的问题,但我找不到以前问过的问题(thisthis很接近,但答案不是很好)。
问题是:如果我想在df中 * 某处 * 搜索一个值(我不知道它在哪一列)并返回所有匹配行。
什么是最潘多拉的方式来做呢?有什么比:

for col in list(df):
    try:    
        df[col] == var
        return df[df[col] == var]
    except TypeError:
        continue

slwdgvem

slwdgvem1#

您可以对整个DataFrame执行相等性比较:

df[df.eq(var1).any(1)]
8i9zcol2

8i9zcol22#

你应该用isin,这是回车列,是要行查冷'回答:-)

df.isin(['bal1']).any()
A        False
B         True
C        False
CLASS    False
dtype: bool

或者

df[df.isin(['bal1'])].stack() # level 0 index is row index , level 1 index is columns which contain that value 
0  B    bal1
1  B    bal1
dtype: object
dkqlctbz

dkqlctbz3#

您可以尝试以下代码:

import pandas as pd
x = pd.read_csv(r"filePath")
x.columns = x.columns.str.lower().str.replace(' ', '_')
y = x.columns.values
z = y.tolist()
print("Note: It take Case Sensitive Values.")
keyWord = input("Type a Keyword to Search: ")
try:
    for k in range(len(z)-1):
        l = x[x[z[k]].str.match(keyWord)]
        print(l.head(10))
        k = k+1
except:
    print("")
txu3uszq

txu3uszq4#

这是一个将返回所需的实际列的解决方案。

df.columns[df.isin(['Yes']).any()]

相关问题