[英]compare columns over two dataframes
I have two dataframes that look like:我有两个数据框,看起来像:
import pandas as pd
f1 = {'entity':['X','Y','Z'],'instrument':['A','B','C'],'Function':['Rates','FX','Rates'],'amt':[1,2,3]}
df1 = pd.DataFrame(data=f1)
f2 = {'entity':['X','Y','Z'],'instrument':['A','B','C'],'Depot':['A','A','B'],'amt':[1,2,3]}
df2 = pd.DataFrame(data=f2)
When I try to iterate over the columns of the two dataframes, I get an error.当我尝试遍历两个数据帧的列时,出现错误。 Any ideas why ?
任何想法为什么?
common_cols=['entity','instrument']
common_cols_iter=iter(common_cols)
for index1,row1 in df1.iterrows():
for index2,row2 in df2.iterrows():
if row1[next(common_cols_iter)]==row2[next(common_cols_iter)]:
print("common")
else:
print("not")
I am trying to achieve:我正在努力实现:
for index1,row1 in df1.iterrows():
for index2,row2 in df2.iterrows():
if (row1['entity']==row2['entity'] and row1['instrument']==row2['instrument']):
print("common")
else:
print("not")
Why dont you iterate over columns using a for?为什么不使用 for 迭代列?
common_cols=['entity','instrument']
common_cols_iter=iter(common_cols)
def check_cond(row1,row2):
for col in common_cols:
if row1[col] != row2[col]:
return False
return True
for index1,row1 in df1.iterrows():
for index2,row2 in df2.iterrows():
if check_cond(row1,row2):
print("common")
else:
print("not")
next(common_cols_iter)
只会在您的代码中工作两次,之后它会说停止迭代。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.