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

2024-09-30 13:31:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

my_df.sum(axis="rows")   

O/p是

甲22

乙26

摄氏30度

//我希望它按行求和

06年

115个

2月24日

3 33个

my_df.sum(axis="columns") //helps achieve this

为什么它起反直觉作用? 在类似的上下文中,drop方法按其应该的方式工作,即当我编写

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

//这将删除列“a”

我错过什么了吗?请开导


Tags: columnsdataframedfmynplistdroprows
1条回答
网友
1楼 · 发布于 2024-09-30 13:31:42

短版本

这是一个命名约定。列的和给出了行的和。你在找axis='columns')


长版本

好吧,那很有趣。通常情况下,0表示列,1表示行。 但是在docs中,我们发现允许的参数是:

axis : {index (0), columns (1)}

您传递的参数不存在,这将导致默认值。这可以理解为:列之和返回行之和。索引的和返回列和。您想使用的是axis=1axis='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))

退货:

0     6
1    15
2    24
3    33
dtype: int64

相关问题 更多 >

    热门问题