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

标签 python pandas data-science

我有两个数据框,分别是 df1 和 df2。
两者都具有与“帐户”相同的列名称。

我目前可以使用以下代码访问此数据进行比较:
df1.account.isin(df2.account.values)

我希望将“account”作为类似这样的变量进行访问。
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 =“帐户”
df1[col].isin(df2[col].values)

感谢您的所有帮助!

最佳答案

尝试一下..使用设置功能

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

关于python - 如何按名称作为变量访问列以使用 isin() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54832021/

相关文章:

python - 在没有窗口的情况下绘制和写入图像文件

python - 使用python从HTML页面获取数据

python - 将 pandas.core.groupby.SeriesGroupBy 转换为 dataframe

python - sklearn.lda.LDA() 和 sklearn.discriminant_analysis.LinearDiscriminantAnalysis() 之间的区别

machine-learning - BigQuery 拆分数据集偏差

python - 来自数据帧的随机样本和剩余部分

python - 如何释放(ana)conda占用的磁盘空间?

python - 将 Psyco 与 Django 一起使用是否有意义?

python - 在 pandas 中查找匹配的列,包括 NaN

python Pandas : remove duplicates row in each seperate section