在数据框中查找多个列表值
Posted
技术标签:
【中文标题】在数据框中查找多个列表值【英文标题】:find mutlible list values inside a dataframe 【发布时间】:2021-12-29 12:46:44 【问题描述】:我有一个list
名称为list_1
,如下所示:
[["xx ",'yy']
[["gg ",'xx']
[["xx ",'gg']]
另外,我有一个像这样的df
:
column1 column2............ coulymn_N
0 xx gg gg
1 gg xx yy
2 xx something else nan
我想将list_1
逐行搜索到df
中并返回匹配项
例如,df
中第一行 list_1
的输出可能是
column1
0 xx
还有
column_N
1 yy
我遇到的问题是,在我的list
中,我有多个值("xx ",
和"yy")
,所以我很困惑。我不认为我可以使用isin
方法。
有什么想法吗?
【问题讨论】:
您好,我不明白您的问题。看看***.com/questions/20109391/… 【参考方案1】:假设你有一个类似的列表:
list_of_lists = [["xx", "yy"], ["gg", "xx"], ["xx", "gg"]]
还有一个像这样的熊猫数据框:
import pandas as pd
df = pd.DataFrame(
"column1": ["xx", "yy", "aa"],
"column2": ["yy", "gg", "aa"],
"column3": ["gg", "aa", "hh"],
)
然后,您可以遍历 list_of_lists
中的每个 sub_list
,并检查 sub_list 的每个项目是否存在于数据框的任何列中。在这种情况下,您可以打印结果:
for sub_list in list_of_lists:
print("\n")
print("Sub_list: ", sub_list)
for item in sub_list:
for col in df.columns:
if item in df[col].values:
print(df[col][df[col] == item].to_frame())
上面将打印以下内容:
Sub_list: ['xx', 'yy']
column1
0 xx
column1
1 yy
column2
0 yy
Sub_list: ['gg', 'xx']
column2
1 gg
column3
0 gg
column1
0 xx
Sub_list: ['xx', 'gg']
column1
0 xx
column2
1 gg
column3
0 gg
【讨论】:
你能解释一下最后一行 print(dfcc[col][dfcc[col] == item].to_frame()) 尤其是这个 df[col][df[col]?跨度>[df[col] == item]
选择列col
的值等于item
的那些实例,例如xx
。之前的df[col]
仅选择列col
。因此,例如,如果我们位于项目 xx
和 col
column1
,它将找到 column1
等于 xx
(项目)的那些行。在所有这些行中,我们只需要 column1
到 df[col]
的值。以上是关于在数据框中查找多个列表值的主要内容,如果未能解决你的问题,请参考以下文章