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

我有两个数据帧,分别是 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 如下所示:


Account

1

2

3

4

5

df2 如下所示:


Account

3

1

5

2

4



解决方法如下: col = "account"

df1[col].isin(df2[col].values)


谢谢大家的帮助!


ABOUTYOU
浏览 148回答 1
1回答

幕布斯6054654

试试这个.. 使用 set 功能Usercol ='Account' #user entryCommon = list(set(df1.loc[:Usercol]).intersect(set(df2.loc[:Usercol])))#fetch index of each data frame usingdf1[df1[Usercol].isin(Common)].indexdf2[df2[Usercol].isin(Common)].index
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python