我有一个文件"MTN.xlsx"我从数据库(我认为)得到的,以及sql请求结果导出的csv文件。在cvs文件中,每个"代码"列都有一个"id",因此每行都有一个唯一的"id"值。"MTN.xlsx"文件有48列。我关注最后两个。"MTN.xlsx"的图像片段。名为"site"的第47列的值有许多重复的值,它们都与csv文件的"code"列中的单行相匹配。使用这些匹配的列,我想填充'siteId'列,为' mtn .xlsx ';与csv文件的'id'对应的值。
请问,你能帮我找到一个自动匹配的方法吗?对不起,如果我的英语不是很好。请随时询问更多的细节。谢谢你。
编辑:这里是Excel,这里是CSV。我正在寻找一种方法来合并他们得到这个结果excel文件在这里(保持所有列&像这样(用伪代码写):
excel_file['siteId'] = (excel_file['site'] converted to csv_file['id'] based on matches with csv_file['code'])
我已经编辑了我的代码,以反映您所需要的更改,从提供的照片。我意识到我的旧代码有一些东西是向后的,希望这能为你提供你正在寻找的东西,如果不是随时让我知道需要改变什么:
#Read in Excel/CSV files
excel_file = pd.read_excel('MTN.xlsx')
csv_file = pd.read_csv('csv_file.csv') #Change name to your csv file name
#Join files together base on the ID's given by the 'site' and 'code' columns
merged_file = excel_file.merge(csv_file, left_on='site', right_on='code', how='left')
#Assign merged_file 'id' column to the original csv file's column 'siteId'
excel_file['siteId'] = merged_file['id']
#Saving the excel
excel_file.to_excel('MTN_Updated.xlsx', index=False)
print(excel_file)
这段代码基本上结合了'site' - 'code'列关系上的两个文件,基本上是在excel文件中排序'id'列以匹配csv文件,然后将其分配给csv文件的'siteId'列,然后将其保存为新文件。
让我知道,如果这是你正在寻找,或者如果你有任何问题一般!