我正在尝试将两个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}
使用熊猫:
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)
请尝试这个:
将熊猫作为pd导入
输出= pd.merge(product,sub_product,how ='外部',left_on ='product_id',right_on ='product_id')
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
您可以使用纯python处理脚本。它有一个强大的csv库,可以解决问题
您可以将数据直接读取为pandas数据框,然后将两个数据框合并:
其他人提出了使用熊猫的方法。如果文件很大,或者您需要经常执行此操作,则应该考虑一下。但是,这里的csv模块就足够了。