Python 数据帧求和方法的工作原理与直觉相反

Python 数据帧求和方法的工作原理与直觉相反,python,pandas,dataframe,Python,Pandas,Dataframe,O/p为 a 22 b 26 c 30 //我希望它能按行求和,从而给出 06 115 224 333 my_df = DataFrame(np.arange(1,13).reshape(4,3), columns=list('abc')) my_df.sum(axis="rows") 为什么它起反直觉作用? 在类似的上下文中,drop方法按其应该的方式工作,即当我编写时 my_df.sum(axis="columns") //helps achieve this //这将删除“a”

O/p为

a 22

b 26

c 30

//我希望它能按行求和,从而给出

06

115

224

333

my_df = DataFrame(np.arange(1,13).reshape(4,3), columns=list('abc'))

my_df.sum(axis="rows")   
为什么它起反直觉作用? 在类似的上下文中,drop方法按其应该的方式工作,即当我编写时

my_df.sum(axis="columns") //helps achieve this
//这将删除“a”列

我错过什么了吗?请说明。

简短版本 这是一种命名约定。列的和给出了行的和。您正在查找
axis='columns')


长版本 好的,那很有趣。通常情况下,0表示列,1表示行。 但是,查看中,我们发现允许的参数为:

轴:{索引(0),列(1)}

您正在传递一个不存在的参数,这将导致默认值。因此,这可以理解为:列和返回行和。索引和返回列和。您想要使用它的内容
axis=1
axis='columns'
,从而产生所需的输出:

my_df.drop(['a'],axis="columns") 
返回:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(1,13).reshape(4,3), columns=list('abc'))

print(df.sum(axis=1))

我确实理解这一切,但不应该有一些逻辑,它是建立在我们所认为的相反!也许有些东西我们没有思考或领会。@rAmAnA我认为
轴=0 | 1
(使用数字)是一个更容易思考的东西。我无法回答其他ppl是如何命名的,但我非常相信他们是有能力做出正确决策的人。我不知道你还能找到什么答案。使用drop(axis=1)可以删除列。带sum(轴=1)…按行求和。所以即使是相反的情况。@rAmAnA drop axis1:删除一列。sum axis1:列的总和。我认为这是有道理的。也许我不能理解,但如果你能详细一点,这会有所帮助。总和(轴=1)是每行的总和。你为什么说它是“列的总和”?
0     6
1    15
2    24
3    33
dtype: int64