Python 数据帧求和方法的工作原理与直觉相反
O/p为 a 22 b 26 c 30 //我希望它能按行求和,从而给出 06 115 224 333Python 数据帧求和方法的工作原理与直觉相反,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”
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