gpt4 book ai didi

python - pandas DataFrame sum 方法违反直觉

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:58 26 4
gpt4 key购买 nike

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

my_df.sum(axis="rows")

O/P 是

22

26

c 30

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

0 6

1 15

2 24

3 33

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

为什么它会违反直觉?在类似的上下文中,drop 方法可以正常工作,即当我写的时候

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

//这会删除列“a”。

我错过了什么吗?请指教。

最佳答案

精简版

这是一种命名约定。列的总和给出了逐行总和。您正在寻找 axis='columns')


长版

好的,这很有趣。在 Pandas 中,通常 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

关于python - pandas DataFrame sum 方法违反直觉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50655222/

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