[英]return the column name from a table where a specific value in any row were found with python and pandas
[英]Filter a dataframe column for a keyword, return seperate column value (name) from the row where each keyword is found
如果有一个数据框,并且如果我在另一列中找到关键字,我想返回一列中的值。 所以下面如果我搜索apple
,我希望 output 是[a,b]
像这样:
names words
a apple
b apple
c pear
我想要一个列表: [a,b]
我找到了使用str.contains
返回 boolean 值的方法,但不确定如何从同一行中的另一列中获取值,这将为我命名。 一定有一个帖子我找不到如果有人可以指导我那里。
你可以做
list(df[df['words'].str.contains('apple')]['names'])
导致
['a', 'b']
df['words'].str.contains('apple')
为条件构建一个 boolean pandas 系列完整代码:
import io
import pandas as pd
data = """
names words
a apple
b apple
c pear
"""
df = pd.read_csv(io.StringIO(data), sep='\s+')
lst = list(df[df['words'].str.contains('apple')]['names'])
>>>print(lst)
['a', 'b']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.