假设我有一个表,其中有一个名称和一个值,例如:
NAME VALUE
Artur 2
Cristian 3
Artur 4
Peter 5
Cristian 8
Artur 2
我需要隔离名称和值的总和,例如:
NAME VALUE
Artur 8
Cristian 11
Peter 5
我该怎么做?
我尝试拆分每一行以隔离值,但我只是不知道如何识别重复的名称。
data = open ('data.txt', 'r')
for line in data:
value = line.split()
我需要对重复的名称进行分组并对它们的值求和。
最佳答案
使用pandas , 非常强大的工具:
data = pd.read_csv(fname, sep = "\s+|\t+|\s+\t+|\t+\s+")
by_name_df = data.groupby(by="NAME").sum()
print(by_name_df)
第一行会将 csv 读入数据帧,并带有连续的分隔符(如果您有任何空格和连续的分隔符)。
第二行按 NAME
列分组并对其求和,生成按名称求和的输出数据帧。
如果您希望名称保留在列中而不是新数据框中索引的一部分,请使用:
by_name_df = data.groupby(by="NAME",as_index=False).sum()
生成的输出:
NAME VALUE
Artur 8
Cristian 11
Peter 5
关于python - 使用 Python 计算表中出现的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57576121/