Python通过公用列合并两个CSV

问题描述 投票:0回答:6

我正在尝试将两个csv文件与一个公共列合并,然后将其写入新文件。例如product.csv表将具有列

      product_id     name        
       1           Handwash      
       2           Soap          

和subproduct.csv将具有列

      product_id subproduct_name volume
       1           Dettol         20
       1           Lifebuoy      50
       2           Lux           100

输出sales.csv文件应类似于:

  product_id        name      subproduct_name     volume 
       1           Handwash      Dettol            20   
       1           Handwash      Lifebuoy          50
       2           Soap           Lux             100 

我尝试创建两个字典:

with open('product.csv', 'r') as f:
r = csv.reader(f)

dict1 = {row[0]: row[1:] for row in r}

with open('subproduct.csv', 'r') as f:
r = csv.reader(f)

dict2 = {row[0]: row[1:] for row in r}
python python-3.x csv
6个回答
0
投票

使用熊猫:

import pandas as pd

products_df = pd.read_csv('product.csv')
subproducts_df = pd.read_csv('subproduct.csv')

sales_df = pd.merge(products_df, subproducts_df, on=0)

0
投票

请尝试这个:

将熊猫作为pd导入

输出= pd.merge(product,sub_product,how ='外部',left_on ='product_id',right_on ='product_id')


0
投票

与熊猫合并

Stage 1:如果尚未安装Pip,请先安装Pandas

第2阶段:创建数据

data1 = {'product_id': [1, 2], 
         'name': ['Handwash', 'Soap'], 
              }
data2  {'product_id': [1, 1, 2], 
'subproduct_name': ['Dettol', 'Lifebuoy', 'Lux'], 'volume' : [20, 50, 100]} 

阶段3]]将其放入数据框

df1 = pd.DataFrame(data1) 
df2 = pd.DataFrame(data2))

第4阶段:

合并数据框
output = pd.merge(df1, df2, how="inner")

通过CSV与熊猫合并

df1=pd.read_csv('product.csv')
df2=pd.read_csv('subproduct.csv')

执行阶段4


0
投票

您可以使用纯python处理脚本。它有一个强大的csv库,可以解决问题


0
投票

您可以将数据直接读取为pandas数据框,然后将两个数据框合并:


0
投票

其他人提出了使用熊猫的方法。如果文件很大,或者您需要经常执行此操作,则应该考虑一下。但是,这里的csv模块就足够了。

© www.soinside.com 2019 - 2024. All rights reserved.