【问题标题】:Summing Row values together based on index value and conditional statement根据索引值和条件语句将行值汇总在一起
【发布时间】:2019-09-20 20:32:25
【问题描述】:

我正在尝试使多个项目具有相似索引的过程自动化。

例如,索引可能是:

12345 - Banana - Green 
12346 - Banana - Yellow
12347 - Banana - Brown
12348 - Orange - Orange

我需要能够将“香蕉”行汇总为 1 个单数行,即所有单个“香蕉”行的总和。

有没有办法自动对香蕉行中的值求和?我不想只对“banana”使用匹配条件,因为试图为几乎所有关键字自动执行此过程。非常感谢任何帮助!

【问题讨论】:

    标签: python pandas dataframe jupyter


    【解决方案1】:

    如果我正确理解您的问题,groupby 方法适合您。看这个例子:

    df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
    ...                               'Parrot', 'Parrot'],
    ...                    'Max Speed': [380., 370., 24., 26.]})
    >>> df
       Animal  Max Speed
    0  Falcon      380.0
    1  Falcon      370.0
    2  Parrot       24.0
    3  Parrot       26.0
    
    grouped_df = df.groupby(['Animal']).sum()
    >>> grouped_dp
            Max Speed
    Animal
    Falcon      750.0
    Parrot       50.0
    

    您可以像这样查询数据框:

    >>> grouped_df[(grouped_df.index == 'Parrot') & (grouped_df['Max Speed']>10)]
            Max Speed
    Animal           
    Parrot       50.0
    

    【讨论】:

    • 我尽量不使用静态关键字。我的关键字是流动的,所以每次我运行我的数据时,我都必须用新的关键字重新输入“falcon”或“parrot”。有没有办法可以逐个字符搜索?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2015-07-15
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 2021-02-02
    • 2021-06-28
    相关资源
    最近更新 更多