python - 合并 csv 值并输出到 csv

标签 python list csv slice

我正在尝试读取 csv 文件并组合重复的值,然后再次将这些值输出到 csv 中。

  • 迭代文本文件中的每一行。第一行包含标题,因此应跳过。
  • 分隔每行中找到的三个值。每行包含产品名称、销售数量和单价(单个产品的价格),以制表符分隔。
  • 对每种产品的销售数量进行汇总;例如,“产品 b”的总销量为 12。
  • 记录每种产品的单价。
  • 将结果写入sales-report.csv;摘要应包括每种产品的名称、销量(已售出的总数量)和销售收入(已售出的总数量*除产品价格)。

我的意图。

输入数据:

product name,quantity,unit price
product c,2,22.5
product a,1,10
product b,5,19.7
product a,3,10
product f,1,45.9
product d,4,34.5
product e,1,9.99
product c,3,22.5
product d,2,34.5
product e,4,9.99
product f,5,45.9
product b,7,19.7

输出数据:

product name,sales volume,sales revenue
product c,5,112.5
product a,4,40
product b,12,236.4
product f,6,275.4
product d,6,207
product e,5,49.95

这是我到目前为止所拥有的,我环顾四周,并不完全清楚我应该如何执行列表理解和组合值。 当我寻找答案时,它大多比可能需要的更复杂,它相对简单......

    record = []
    with open("items.csv", "r") as f:
        next(f)
        for values in f:
            split = values.rstrip().split(',')
            record.append(split)
        print(record)

最佳答案

您可以使用 pandas 来实现此目的:

import pandas as pd

df = pd.read_csv('path/to/file')

然后计算销售收入groupbysum

df = df.assign(sales_revenue=lambda x: x['数量'] * x['单价']).groupby('产品名称').sum().reset_index()


  product name  quantity  sales_revenue
0    product a         4       20.00
1    product b        12       39.40
2    product c         5       45.00
3    product d         6       69.00
4    product e         5       19.98
5    product f         6       91.80

您可以将结果保存到 csv 文件

df.to_csv('new_file_name.csv', index=False)

关于python - 合并 csv 值并输出到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64924469/

相关文章:

python - python 中的新 sys.path

python - 用Python检查圆扇形中是否存在一个点

c# - 为什么参数超出范围?

c - 在带链表的递归函数中使用 rand()

sql-server - 使用SSIS在数据中使用多个双引号将csv文件导入SQL Server

python - 基于 pandas 条件的列值总和

c# - 什么是局部类?

python - 空列表在 while 和 for 循环的上下文中不生成输出

batch-file - 如何从逗号分隔文件中删除前导零

excel - 使用 VBA 将 CSV 导入 Excel 匹配列标题