python - 使用 Python 计算表中出现的字符串

标签 python

假设我有一个表,其中有一个名称和一个值,例如:

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/

相关文章:

python - CSV 数据(时间戳和事件)的时间序列图 : x-label constant

python - 多层bidirectional_dynamic_rnn : incompatible with MultiRNNCell?

python - 在 Pytorch 中查找前 k 个匹配项

python - 如何更新文本文件中的变量

python - Django - 获取外键(相关)对象的列表

python - 二维 numpy 数组的 block 平均值(两个维度)

python - 如何将 OpenCV 的输出播放到 Kivy VideoPlayer 或任何其他播放器?

python - 如何替换除第一个以外的所有事件?

python - 如何在 python 中使用 pyarrow 从 S3 读取分区 Parquet 文件

python - Bokeh 小部件 - 工作复选框组示例