我是python的新手,所以请对我好一点:P
我尝试查找在两个文件中相同的值。在文件1中,我比文件2中有更多的列。
因此,我做了以下工作:
import pandas as pd
import numpy as np
from io import StringIO
df1 = pd.read_csv('File2.csv', delimiter=';',encoding="utf-8")
df2 = pd.read_excel('File1.xlsx')
df_1 = pd.DataFrame(df1)
df_2 = pd.DataFrame(df2)
for index_xls, row_xls in df_2.iterrows():
excel = row_xls['Source-a'],row_xls['Source-b'],row_xls['Target-1'],row_xls['Target-2']
for index_csv, row_csv in df_1.iterrows():
csv = row_csv['Source-a'],row_csv['Source-b'],row_csv['Target-1'],row_csv['Target-2']
pgv = excel == csv
if pgv == True:
print(excel)
现在,我想为来自for循环的每个"true“值在file1.xlsx中添加一个新列。
File1.xlsx中有更多列,与file2.csv中的列相同。
我在变量"excel“中得到了正确的结果,但我不知道如何继续。
简而言之:我想要变量"excel“中的值,并将这些值与file1.xls的4列进行比较,如果它们匹配,我想在匹配的行中添加一个"true”。
我希望我已经描述过了,这样别人就能理解我的问题了:
非常感谢
发布于 2021-11-09 13:11:36
这两行是多余的;pd.read_csv
和pd.read_excel
已经返回了DataFrames:
df_1 = pd.DataFrame(df1)
df_2 = pd.DataFrame(df2)
关于你的主要问题:
cols = ['Source-a','Source-b','Target-1','Target-2']
present_in_both = pd.merge(df1,df2,on=cols,how='inner')
https://stackoverflow.com/questions/69898430
复制相似问题