如何使用python连接csv和列中的sum值

2024-09-30 00:39:50 发布

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

我有这样一个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

另一个文件如下:

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

有人能帮我解决这个问题吗?你知道吗

非常感谢


Tags: 文件csvdatecountgreenbluefile1file2
3条回答

如果两个数据帧具有相同的形状(行、列的数量相同),并且数据与示例中的对齐,我们可以简单地执行以下操作:

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

其他使用^{}

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

首先读取csv并保存在dataframe中
使用连接两个文件pd.concat公司()
groupbydate,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()

我希望它能解决你的问题

相关问题 更多 >

    热门问题