假设我有一个表,其中有一个名称和一个值,例如:
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()
我需要对重复的名称进行分组并对其值求和。
使用熊猫,非常强大的工具:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句