将列从一个csv文件移动到另一个csv文件,并将其值移动到ID匹配的位置

2024-06-28 23:43:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道使用Python中的pandas是否可以实现以下功能: 我有两个CSV文件

products.csv:

Id  ProductName EngagedUsers
1   Tennis Ball     17
2   Football Shoes  33
3   Electric Guitar 45
4   Drum Pad        6

orders.csv:

Id  OrderNo OrderDestination
1    200         London
3    22          Madrid
2    1           Lisbon

基于这两个文件,我想生成一个新的CSV文件,显示以下内容:

newOrders.csv:

Id  ProductName EngagedUsers    OrderNo
1   Tennis Ball     17            200
2   Football Shoes  33            1
3   Electric Guitar 45            22

据我所知,我必须将这两个文件作为数据帧打开,并将它们合并到“Id”列中,并指定我需要的列,然后newOrders.csv文件中将只显示匹配Id的值+文件中将不显示不匹配“Id”的记录。你能帮忙吗?到目前为止,我是这样开始的,但结果并不像我预期的那样:

 import pandas as pd

 df_products = pd.read_csv("products.csv")
 df_orders = pd.read_csv("orders.csv")

 df_new = pd.merge(df_products, df_orders, on='Id')

 Id = df_new["Id"]
 ProductName = df_new["ProductName"]
 EngagedUsers = df_new["EngagedUsers"]
 OrderNo = df_new["OrderNo"]


 header = ["Id", "ProductName", "EngagedUsers", "OrderNo"]
 df.to_csv('newOrders.csv', columns = header)

你能帮个忙吗?或者有更简单的方法


Tags: 文件csvidpandasdfnewproductspd
1条回答
网友
1楼 · 发布于 2024-06-28 23:43:37

您可以在两个数据帧中按id排序。这可以通过df.sort_values(by=['id'])实现,然后只需设置一个新的数据帧并从您喜欢的其他数据帧中获取列,例如df_new['ProductName'] = df['ProductName']

相关问题 更多 >