我有第一个Excel文件user_details.csv
的数据我有另一个Excel文件user_mangers.csv
的我需要循环并从user_details.csv中逐个选择每个用户,从user_managers.csv中找到对应的管理员,并将详细信息附加到新的csv文件中,比如像下面这样的user_details_managers.csv。
的
vohkndzv1#
如果你想减少依赖,这是你如何使用标准csv库:
csv
import csv # collect the corresponding items by username user_details_managers = {} with open("./user_details.csv") as details_fp: reader = csv.reader(details_fp) # read first row to skip headers next(reader) for row in reader: user, details = row user_details_managers[user] = [user, details] with open("./user_managers.csv") as managers_fp: reader = csv.reader(managers_fp) # read first row to skip headers next(reader) for row in reader: username, firstname, lastname = row if username in user_details_managers: user_details_managers[username].extend([firstname, lastname]) with open("./user_details_managers.csv", "w") as details_managers_fp: writer = csv.writer(details_managers_fp) # write headers writer.writerow(["user", "details", "manager firstname", "manager lastname"]) # write combined rows writer.writerows(user_details_managers.values())
字符串
eulz3vhy2#
可以用pandas轻松完成:
import pandas as pd user_details = pd.read_csv('user_details.csv') user_managers = pd.read_csv('user_mangers.csv') merged_df = user_details.merge(user_managers, how='left', left_on='user', right_on='username') merged_df.to_csv('user_details_managers.csv')
字符串这里发生了什么?我使用pandas将两个csv文件读入到多个框架中。然后我们将它们合并到一个框架中:在“左边”的框架(这里是user_details)中,我们合并了“user”列,在“右边”的框架(user_magers)中,它接受了“username”列。这意味着它将合并从左边合并每个“user”和从右边合并“username”。结果是一个单一的框架,我使用.to_csv()将其保存为csv。
.to_csv()
2条答案
按热度按时间vohkndzv1#
如果你想减少依赖,这是你如何使用标准
csv
库:字符串
eulz3vhy2#
可以用pandas轻松完成:
字符串
这里发生了什么?我使用pandas将两个csv文件读入到多个框架中。然后我们将它们合并到一个框架中:在“左边”的框架(这里是user_details)中,我们合并了“user”列,在“右边”的框架(user_magers)中,它接受了“username”列。这意味着它将合并从左边合并每个“user”和从右边合并“username”。
结果是一个单一的框架,我使用
.to_csv()
将其保存为csv。