下面是一个编写命名元组并按名称分组到CSV文件中的Python代码示例:
import csv
from collections import namedtuple
# 创建命名元组
Person = namedtuple('Person', ['name', 'age', 'city'])
# 创建数据
person_list = [
Person(name='Alice', age=25, city='New York'),
Person(name='Bob', age=30, city='Los Angeles'),
Person(name='Charlie', age=35, city='Chicago'),
Person(name='Dave', age=40, city='San Francisco')
]
# 将数据分组到字典中
grouped_data = {}
for person in person_list:
if person.city not in grouped_data:
grouped_data[person.city] = []
grouped_data[person.city].append(person)
# 写入CSV文件
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['City', 'Name', 'Age'])
for city, people in grouped_data.items():
for person in people:
writer.writerow([city, person.name, person.age])
这段代码首先使用了namedtuple
来创建了一个名为Person
的命名元组,包含了name
、age
和city
这三个字段。
然后创建了一个person_list
列表,其中包含了几个Person
对象。
接下来,使用一个字典grouped_data
来将数据按照city
字段进行分组。
最后,使用csv
模块中的writer
对象将数据写入到名为output.csv
的CSV文件中。在写入之前,先写入表头行,然后遍历grouped_data
字典,将每个分组中的数据写入到文件中。