开发者社区> 问答> 正文

在python3中使用pandas汇总A列中每个元素的B列值

在座的任何人都可以帮助我使用pandas处理xlsx文档吗?

问题是:我有两列文件。我想从“ A”列中获取值(这些是重复的),并从“ B”列获取足够的值并将其汇总。

例:

123abc  100
zxc345  500
123abc 120
zxc345 800
123abc 100

我想拥有:

123abc 320
zxc345 1300

现在,我的代码仅对该文件进行排序:

123abc  100
        120
zxc345  500
        800

另外,请注意,该条目仅显示一次:“ 123abc 100”,尽管事实是重复的。

先感谢您!

这是代码:

from sys import argv
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import sys

# print("ilosc argumentow",len(sys.argv))

if len(sys.argv) < 2:
        print("Give me Excel file: " +  sys.argv[0] + ' niezrealizowane.xlsx')
        quit()
else:
        print("*" * 50)
        print("""Pracuje na: """, sys.argv[1])
        print("*" * 50)



skrypt, ticket = argv

# ZGODNOSCI and NuMERKI are first row in each of affected columns.

data = pd.read_excel(ticket, index_col=None, na_values=['NA'], usecols = "F, H")
data2 = data.groupby(['ZGODNOSCI', 'NuMERKI'])['NuMERKI'].sum()

data2.to_excel('Edzia-test.xlsx')

问题来源:stackoverflow

展开
收起
is大龙 2020-03-21 11:00:08 407 0
1 条回答
写回答
取消 提交回答
  • 使用groupby

    df.groupby('A')['B'].sum()
    

    >>> df
            A    B
    0  123abc  100
    1  zxc345  500
    2  123abc  120
    3  zxc345  800
    4  123abc  100
    >>> df.groupby('A')['B'].sum()
    A
    123abc     320
    zxc345    1300
    Name: B, dtype: int64
    

    回答来源:stackoverflow

    2020-03-21 11:00:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Improving Python and Spark 立即下载
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载