如何在Python的CSV文件中打印组中出现的唯一名称
我想打印列中的特定名称及其csv数据 例如:如何在Python的CSV文件中打印组中出现的唯一名称,python,Python,我想打印列中的特定名称及其csv数据 例如: [**Joseph**, 1923, **503**] [Josephine, 1945, 1301] [Josephina, 1952, 66] [**Joseph**, 1999, **3498**] 我只想得到Joseph和第2行的总数,但我还不能使用Panda 该输出应如下所示: 约瑟夫:4001 但是它却显示了所有与Joseph有关的名字,比如Josephine 这是我的代码: import csv, import itertool
[**Joseph**, 1923, **503**]
[Josephine, 1945, 1301]
[Josephina, 1952, 66]
[**Joseph**, 1999, **3498**]
我只想得到Joseph和第2行的总数,但我还不能使用Panda
该输出应如下所示:
约瑟夫:4001
但是它却显示了所有与Joseph有关的名字,比如Josephine
这是我的代码:
import csv,
import itertools,
import operator
levelgetter = operator.itemgetter(0)
col2sumgetter =operator.itemgetter(2)
baby_name = input("Enter the first name to analyze: ")
with open("baby_names.csv", "r") as file:
reader = csv.reader(file)
name = lambda row: levelgetter(row)
sorted_rows = sorted(reader, key=name)
for level, group in itertools.groupby(sorted_rows, key=name):
if baby_name in level:
total = sum(int(col2sumgetter(row)) for row in group)
print(level, total)
假设您有一个csv文件
file.csv
像这样
Joseph, 1923, 503
Josephine, 1945, 1301
Josephina, 1952, 66
Joseph, 1999, 3498
使用csv.DictReader
,您可以使用以下代码获取所需内容
import csv
baby_name = input('Enter the first name')
with open('file.csv') as file:
rows = list(csv.DictReader(file, fieldnames = ['c1', 'c2', 'c3']))
res = {}
for row in rows:
if row['c1'] == baby_name:
res[baby_name] = res.get(baby_name, 0) + int(row['c3'])
print(res) # {'Joseph': 4001}
要获得总计,只需执行
res.values()
,它将打印不带名称的总计。假设您有一个csv文件file.csv
,如下所示
Joseph, 1923, 503
Josephine, 1945, 1301
Josephina, 1952, 66
Joseph, 1999, 3498
使用csv.DictReader
,您可以使用以下代码获取所需内容
import csv
baby_name = input('Enter the first name')
with open('file.csv') as file:
rows = list(csv.DictReader(file, fieldnames = ['c1', 'c2', 'c3']))
res = {}
for row in rows:
if row['c1'] == baby_name:
res[baby_name] = res.get(baby_name, 0) + int(row['c3'])
print(res) # {'Joseph': 4001}
要获得总计,只需执行
res.values()
,这将打印没有名称的总计。我是这里的新手,如何接受已解决的总计?另外,您可以为c3的总数做另一个选择吗?-->总数是4001,没有名字吗?非常感谢@python\u用户。这只是为了显示总数。我是新来的,我怎么能接受这个问题的答案呢?另外,您可以为c3的总数做另一个选择吗?-->总数是4001,没有名字吗?非常感谢@python\u用户。这只是为了显示总数。找到它并接受了答案。