python – 如何使用pandas isin用于多个列
发布时间:2020-12-20 12:01:58 所属栏目:Python 来源:网络整理
导读:我想找到col1和col2的值,其中第一个数据帧的col1和col2都在第二个数据帧中. 这些行应该在结果数据框中: 披萨,男孩 披萨,女孩 冰淇淋,男孩 因为所有三行都在第一个和第二个数据帧中. 我怎么可能做到这一点?我正在考虑使用isin,但是当我不得不考虑多个列时,
我想找到col1和col2的值,其中第一个数据帧的col1和col2都在第二个数据帧中. 这些行应该在结果数据框中: >披萨,男孩 因为所有三行都在第一个和第二个数据帧中. 我怎么可能做到这一点?我正在考虑使用isin,但是当我不得不考虑多个列时,我不确定如何使用它. 解决方法
在col1和col2上执行
inner merge:
import pandas as pd df1 = pd.DataFrame({'col1': ['pizza','hamburger','pizza','ice cream'],'col2': ['boy','boy','girl','boy']},index=range(1,6)) df2 = pd.DataFrame({'col1': ['pizza','chicken','cake',index=range(10,17)) print(pd.merge(df2.reset_index(),df1,how='inner').set_index('index')) 产量 col1 col2 index 10 pizza boy 11 pizza girl 16 ice cream boy reset_index和set_index调用的目的是保留df2的索引,就像您发布的所需结果一样.如果索引不重要,那么 pd.merge(df2,how='inner') # col1 col2 # 0 pizza boy # 1 pizza girl # 2 ice cream boy 就够了 或者,您可以在col1和col2列中构造 index1 = pd.MultiIndex.from_arrays([df1[col] for col in ['col1','col2']]) index2 = pd.MultiIndex.from_arrays([df2[col] for col in ['col1','col2']]) print(df2.loc[index2.isin(index1)]) 产量 col1 col2 10 pizza boy 11 pizza girl 16 ice cream boy (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |