gpt4 book ai didi

python - axis = 0 似乎在 sum() 和 dropna() 中表现不同

转载 作者:行者123 更新时间:2023-12-05 06:35:42 25 4
gpt4 key购买 nike

通过阅读 pandas 文档和一个很好的问答 ( What does axis in pandas mean? ),我原以为 axis=0 总是表示与列有关。当我使用 sum() 时这对我有用,但当我使用 dropna() 调用时则相反。

当我有这样的数据框时:

raw_data = {'column1': [42,13, np.nan, np.nan],
'column2': [4,12, np.nan, np.nan],
'column3': [25,61, np.nan, np.nan]}

看起来像这样:

   column1  column2  column3
0 42.0 4.0 25.0
1 13.0 12.0 61.0
2 NaN NaN NaN
3 NaN NaN NaN

我可以打印各个列的总和,轴 = 0。还有这个:

df = pd.DataFrame(raw_data )
print(df.sum(axis=0))

给出输出:

column1    55.0
column2 16.0
column3 86.0

当我尝试从轴 = 0 的数据框中删除值时,这应该再次与列*有关。但是当我这样做时:

dfclear=df.dropna(axis=0,how='all')
print(dfclear)

我得到输出:

column1  column2  column3
0 42.0 4.0 25.0
1 13.0 12.0 61.0

在我预期的地方(我用 axis=1 得到):

   column1  column2  column3
0 42.0 4.0 25.0
1 13.0 12.0 61.0
2 NaN NaN NaN
3 NaN NaN NaN

所以在我看来,轴在 sum() 和 dropna() 之间的行为不同

我在这里遗漏了什么吗?

* https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html

最佳答案

来自文档字符串:

In [41]: df.dropna?
Signature: df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
Docstring:
Return object with labels on given axis omitted where alternately any
or all of the data are missing

Parameters
----------
axis : {0 or 'index', 1 or 'columns'}, or tuple/list thereof
Pass tuple or list to drop on multiple axes
...

如果您不确定什么是轴,请使用以下方法:

In [39]: df.dropna(axis='index', how='all')
Out[39]:
column1 column2 column3
0 42.0 4.0 25.0
1 13.0 12.0 61.0

In [40]: df.dropna(axis='columns', how='all')
Out[40]:
column1 column2 column3
0 42.0 4.0 25.0
1 13.0 12.0 61.0
2 NaN NaN NaN
3 NaN NaN NaN

关于python - axis = 0 似乎在 sum() 和 dropna() 中表现不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49587177/

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