我正在尝试读取 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')
然后计算销售收入
、groupby
和sum
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/