为啥pandas.DataFrame.sum(axis=0) 在axis = 0代表行的每一列中返回值的总和?

Posted

技术标签:

【中文标题】为啥pandas.DataFrame.sum(axis=0) 在axis = 0代表行的每一列中返回值的总和?【英文标题】:why pandas.DataFrame.sum(axis=0) returns sum of values in each column where axis =0 represent rows?为什么pandas.DataFrame.sum(axis=0) 在axis = 0代表行的每一列中返回值的总和? 【发布时间】:2020-08-24 16:30:31 【问题描述】:

在 pandas 中,axis=0 代表行axis=1 代表列。 因此要获取 pandas 中每一行的值的总和,调用 df.sum(axis=0)但它会返回每列中值的总和,反之亦然。 为什么???

import pandas as pd
df=pd.DataFrame("x":[1,2,3,4,5],"y":[2,4,6,8,10])
df.sum(axis=0)

数据框:

   x   y
0  1   2

1  2   4

2  3   6

3  4   8

4  5  10

输出:

x    15

y    30

预期输出:

0     3

1     6

2     9

3    12

4    15

【问题讨论】:

Axis=0 并不代表您所想的行。如果要对一行中的所有值求和,或者对每一行应用一个函数,请使用axis=1。有关详细信息,请参阅***.com/questions/22149584/…。 这能回答你的问题吗? What does axis in pandas mean? 【参考方案1】:

我认为解释axis 参数的正确方法是对哪个轴求和'over'(或'across'),而不是计算总和的'方向'。指定axis = 0 计算总和行,为您提供每列的总数; axis = 1 计算各列的总和,为您提供每一行的总和。

【讨论】:

【参考方案2】:

我正在阅读 pandas 项目中的源代码,我认为这来自 Numpy,在这个库中以这种方式使用(垂直总和为 1,水平总和为 1),另外 Pandas 按顺序在引擎盖下使用 numpy赚到这笔钱。

在这个link 中,您可以检查pandas 是否使用numpy.cumsum 函数来求和。 而这个link 用于 numpy 文档。

如果您正在寻找一种方法来记住如何使用轴参数,“anant”答案,这是一个很好的方法,解释和 over 轴而不是 across。因此,当指定为 0 时,您正在计算行的总和(迭代索引以获得更多的 pandas doc 投诉)。当轴为 1 时,您正在遍历列。

【讨论】:

以上是关于为啥pandas.DataFrame.sum(axis=0) 在axis = 0代表行的每一列中返回值的总和?的主要内容,如果未能解决你的问题,请参考以下文章

为啥寄存器 ax 中的内存整数总和正确,但寄存器 eax 不正确?

汇编语言当AX=008FH的时候用CMP AL,0和JNL NEXT语句为啥不进行跳转?实在没分啊!帮帮忙!

为啥 MBR 将自身复制到“0x0600”?

百度地图api 为啥刚添加的标注无法删除?

为啥我的 scss 变量没有按预期解析? [复制]

为啥会存在激活函数?