gpt4 book ai didi

python - Pandas:添加总行的最佳方法,该行计算特定(多个)列的总和,同时保留数据类型

转载 作者:行者123 更新时间:2023-12-01 08:21:43 25 4
gpt4 key购买 nike

我试图在数据框的底部创建一行来显示某些列的总和。我的印象是这将是一个非常简单的操作,但令我惊讶的是,我在 SO 上找到的所有方法都不适合我一步。

我在 SO 上找到的方法:

  1. df.loc['TOTAL'] = df.sum()

只要数据框中存在非数字列,这对我就不起作用。我需要先选择列,然后将非数字列连接回来

  • df.append(df.sum(numeric_only=True),ignore_index=True)
  • 这不会保留我的数据类型。整数列将转换为 float 。

  • df3.loc['总计', 'ColumnA']= df['ColumnA'].sum()
  • 我只能用它来求和一列。

    我一定是在这个过程中错过了一些东西,因为这并不是那么困难的操作。请让我知道如何在保留数据帧的数据类型的同时添加求和行。

    谢谢。

    编辑:

    首先,抱歉更新晚了。上周末我在路上

    示例:

    df1 = pd.DataFrame(data = {'CountyID': [77, 95], 'Acronym': ['LC', 'NC'], 'Developable': [44490, 56261], 'Protected': [40355, 35943], 
    'Developed': [66806, 72211]}, index = ['Lehigh', 'Northampton'])

    Pre Sum

    我想要得到的是

    Sum

    请忽略索引的差异。

    这对我来说有点棘手,因为我不需要获取“县 ID”列的总和,因为它用于特定索引。所以问题更多是关于获取特定数字列的总和。

    再次感谢。

    最佳答案

    这里有一些玩具数据用作示例:

    df = pd.DataFrame({'A':[1.0,2.0,3.0],'B':[1,2,3],'C':['A','B','C']})

    为了保留求和后的dtypes,我们将它们存储为d

    d = df.dtypes

    接下来,由于我们只想对数字列求和,因此将 numeric_only=True 传递给 sum(),但遵循与第一次尝试类似的逻辑

    df.loc['Total'] = df.sum(numeric_only=True)

    最后,将 DataFrame 的 dtypes 重置为其原始值。

    df.astype(d)
    <小时/>
             A  B    C
    0 1.0 1 A
    1 2.0 2 B
    2 3.0 3 C
    Total 6.0 6 NaN

    关于python - Pandas:添加总行的最佳方法,该行计算特定(多个)列的总和,同时保留数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54600617/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com