为了账号安全,请及时绑定邮箱和手机立即绑定

如何按名称作为变量访问列以使用 isin() 方法

如何按名称作为变量访问列以使用 isin() 方法

ABOUTYOU 2021-11-16 17:04:38
我有两个数据帧,分别是 df1 和 df2。两者都具有与“帐户”相同的列名。我目前可以使用以下代码访问此数据以进行比较:df1.account.isin(df2.account.values)我希望将“帐户”作为这样的变量访问。df1.[account].isin(df2.[account].values)经过研究,我发现了一个可能的解决方案:(df1.loc[:, 'account']我怀疑这不是正确的方法。)从这一点来看,我不确定如何访问 isin() 方法因此,我欢迎您提供任何其他方法来实现这一点的智慧。非常感谢您的帮助:)完整的代码块如下:slgCSV = 'c:\\automation\\python\\a.csv'armyCSV = 'c:\\automation\\python\\b.csv'df1 = pd.read_csv(slgCSV)df2 = pd.read_csv(armyCSV)d3 = {'Expected': [], 'Actual': []}df3 = pd.DataFrame(data=d3)match1 = df1.account.isin(df2.account.values)match2 = df2.account.isin(df1.account.values)for r1 in df1[match1].index:    for r2 in df2[match2].index:        # print("R2: " + str(r2))        if df1.account[r1] == df2.account[r2]:            idx = df1.account[r1]            row = {'Expected Row ID': r1+2, 'Actual Row ID': r2+2}            print("Output: " + str(row) + ": " + str(idx))df1 如下所示:Account12345df2 如下所示:Account31524解决方法如下: col = "account"df1[col].isin(df2[col].values)谢谢大家的帮助!
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

试试这个.. 使用 set 功能


Usercol ='Account' #user entry

Common = 

list(set(df1.loc[:Usercol]).intersect(set(df2.loc[:Usercol])))

#fetch index of each data frame using

df1[df1[Usercol].isin(Common)].index

df2[df2[Usercol].isin(Common)].index


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信