【发布时间】:2019-03-20 07:10:57
【问题描述】:
我有两个不同的数据帧 df 和 df2,我想遍历 df 的每一行以在 df2 的特定行中搜索某些匹配项,并为每个匹配项返回一个 txt 文件。
df=
name Tec Location
jhon js sr nz
mark python ssr us
alan java jr mx
df2=
company job Country Index
company a js jr uk 1
company b python ssr us 2
company c java jr mx 3
到目前为止,我一直在做以下事情:
for index, row in df.iterrows():
for indexb, rowb in df2.iterrows():
if str(row.Tec) in str(rowb.job) and str(row.Location) in rowb.Country:
print ('Match with ' + str(rowb.company))
sys.stdout= open(r'path\to\file\%s.txt'%(row['name']+ str(rowb.Index),), 'w')
else:
pass
我不断收到匹配错误的文本文件,或者 df2 中的第一行在所有输出 txt 文件中重复。 我想将 Tec 与工作和 Location 与国家进行比较。 因此,例如,这种情况的输出将是: 标记 2.txt ,其中文件包含文本“与公司 b 匹配”
有什么想法吗?
【问题讨论】:
-
您打算在哪些列上匹配两个数据框?请为示例输入添加预期输出。
-
完成,感谢您的建议
标签: python pandas loops dataframe match