У меня есть два кадра данных как 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)
Спасибо за помощь!