【问题标题】:How can I get the total value count of the next two rows of rows that have more than one same value in a column?如何获得在一列中具有多个相同值的下两行行的总值计数?
【发布时间】:2022-12-05 20:43:04
【问题描述】:

我想获取在一列中具有多个相同值的下两行行的总值计数。

我有一个 .csv 文件如下:

Alphabet Sub alphabet Value
A B 1
A C 2
D B 3
D C 4

当我返回字母 A 的结果时,我希望它返回这样的数字 (1 + 2):

3

当我返回字母 D 的结果时,我希望它返回这样的数字 (3 + 4):

7

当我返回所有的字母时,我希望它会返回这样一个列表:

['A: 3', 'D: 7']

我的代码:

import csv

with open("/Users/name/Desktop/path/alphabetical_list.csv") as alphabetical_list_file:
    csv_reader = csv.reader(alphabetical_list_file, delimiter=',')

如果您需要更多信息,请随时发表评论。

如何获得在一列中具有多个相同值的下两行行的总值计数?我将不胜感激任何帮助。先感谢您!

【问题讨论】:

  • csv docs 告诉您如何遍历行并获取值。
  • 嗨@Ouroborus 感谢您的评论。你能回答这个问题并分享代码吗?我不太擅长 Python 编程语言,我不确定如何通过引用该 csv 文档来做到这一点
  • @Ouroborus 还有,我想要的不仅仅是遍历行并获取值,我需要添加相同字母表的所有值

标签: python


【解决方案1】:

使用 很容易做到这一点:

import pandas as pd

out = (pd.read_csv('your_file.csv', sep=',')
         .groupby('Alphabet')['Value']
         .apply(lambda g: f'{g.name}: {g.sum()}')
         .tolist()
       )

或者:

import pandas as pd

out = [f'{name}: {g.sum()}' for name, g in
       pd.read_csv('your_file.csv', sep=',').groupby('Alphabet')['Value']]

输出:

['A: 3', 'D: 7']

【讨论】:

  • 您好感谢您的回答!您的答案代码有效!再次感谢!
猜你喜欢
  • 1970-01-01
  • 2018-11-30
  • 2019-09-17
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2022-01-24
  • 2023-03-19
  • 2013-08-05
相关资源
最近更新 更多