python使用Counter()对一个两列数据进行计算,然后将返回值保存在一个csv中
时间: 2024-03-12 10:45:14 浏览: 86
假设你有一个包含两列数据的csv文件,第一列为名称,第二列为数量,例如:
```
名称,数量
苹果,3
香蕉,2
橙子,5
苹果,2
橙子,3
```
你可以使用Counter()函数来计算每个水果的数量,然后使用csv模块将结果保存到一个新的csv文件中。以下是示例代码:
```python
import csv
from collections import Counter
# 读取csv文件
with open('fruits.csv', 'r') as f:
reader = csv.reader(f)
# 跳过标题行
next(reader)
# 使用Counter函数计算数量
counts = Counter(row[0] for row in reader)
# 将结果保存到新的csv文件中
with open('fruit_counts.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['名称', '数量'])
for fruit, count in counts.items():
writer.writerow([fruit, count])
```
运行代码后,将会生成一个新的csv文件fruit_counts.csv,其内容为:
```
名称,数量
苹果,2
香蕉,1
橙子,2
```
相关问题
python使用Counter()对一个两列数据进行计算,取结果的前50个数量的数据,然后将返回值保存在一个csv中
在上一个问题的代码基础上,你可以使用most_common()方法获取前50个数量最多的数据,并将其保存到csv文件中。以下是示例代码:
```python
import csv
from collections import Counter
# 读取csv文件
with open('fruits.csv', 'r') as f:
reader = csv.reader(f)
# 跳过标题行
next(reader)
# 使用Counter函数计算数量
counts = Counter(row[0] for row in reader)
# 取前50个数量最多的数据
top_fruits = counts.most_common(50)
# 将结果保存到新的csv文件中
with open('top_fruits.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['名称', '数量'])
for fruit, count in top_fruits:
writer.writerow([fruit, count])
```
运行代码后,将会生成一个新的csv文件top_fruits.csv,其中包含前50个数量最多的水果。如果有多个水果的数量相同,则按名称的字母顺序排序。
阅读全文