我有一个这样的csv文件:
file1.csv
date item1 spec count
2019-03-29 book blue 10
2019-03-30 shirt green 11
...
2019-04-25 book blue 20
2019-04-26 shirt green 15
和另一个这样的csv文件:
file2.csv
date item1 spec count
2019-03-29 book blue 5
2019-03-30 shirt green 4
...
2019-04-25 book blue 7
2019-04-26 shirt green 8
我想将文件合并成这样:
fileResult.csv
date item1 spec count
2019-03-29 book blue 15
2019-03-30 shirt green 15
...
2019-04-25 book blue 27
2019-04-26 shirt green 23
有人可以帮我解决这个问题吗?
非常感谢
答案 0 :(得分:4)
如果两个数据框都具有相同的 shape 形状(行,列的数量相同),并且数据与示例中的 aligned 对齐,我们可以简单地做到: / p>
df1['count'] = df1['count'] + df2['count']
print(df1)
date item1 spec count
0 2019-03-29 book blue 15
1 2019-03-30 shirt green 15
2 2019-04-25 book blue 27
3 2019-04-26 shirt green 23
其他使用merge
:
final = df1.merge(df2, on=['date', 'item1', 'spec'])
final['count'] = final.pop('count_x')+ final.pop('count_y')
date item1 spec count
0 2019-03-29 book blue 15
1 2019-03-30 shirt green 15
2 2019-04-25 book blue 27
3 2019-04-26 shirt green 23
答案 1 :(得分:3)
先读取csv并保存在数据框中
使用pd.concat()连接两个文件
groupby date,item,spec
并使用groupby()
df1 = pd.read_csv('csv1.csv')
df2 = pd.read_csv('csv2.csv')
df3 = pd.concat([df1,df2])
final_result= df3.groupby(['date','item','spec'],as_index=False)['count'].sum()
我希望它能解决您的问题
答案 2 :(得分:1)