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

时间:2020-01-23 10:58:03

标签: python pandas csv

我想知道在Python中使用熊猫是否可能实现以下目的: 我有两个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)

您能帮忙吗?也许有更简单的方法?

1 个答案:

答案 0 :(得分:0)

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