gpt4 book ai didi

python - pandas 数据框单元格中 numpy 数组的元素平均值

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:09 25 4
gpt4 key购买 nike

我有一个 2x1 pandas 数据框,其中 2 个单元格包含 numpy 数组:

>>> import numpy as np
>>> import pandas as pd
>>> a0 = np.array([[1, 2], [2, 2]])
>>> a1 = np.array([[3, 2], [1, 1]])
>>> df = pd.DataFrame([[a0], [a1]])

我可以计算两个数组的逐元素平均值,如下所示:

>>> np.mean(df[0])
array([[ 2. , 2. ],
[ 1.5, 1.5]])

现在我想考虑至少一个数组包含 nan/s 的情况,例如

>>> a0 = np.array([[1, 2], [2, np.nan]])
>>> a1 = np.array([[3, 2], [1, 1]])
>>> df = pd.DataFrame([[a0], [a1]])

上面使用的平均方法给出

>>> np.mean(df[0])
array([[ 2. , 2. ],
[ 1.5, nan]])
正如预期的那样。我希望 nan/s 被忽略。我希望以下内容能够发挥作用

>>> np.nanmean(df[0])
array([[ -4., -4.],
[ -3., nan]])

但显然不是。

所以,我的问题:如何计算 pandas 数据框单元格中包含的 numpy 数组的逐元素平均值?

最佳答案

我不确定我是否理解正确,部分原因是我对索引 0 和列名 0 感到困惑......但这里有一个想法:

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: a0 = np.array([[1, 2], [2, np.nan]])

In [4]: a1 = np.array([[3, 2], [1, 1]])

In [5]: df = pd.DataFrame([[a0], [a1]])

In [6]: df
Out[6]:
0
0 [[1.0, 2.0], [2.0, nan]]
1 [[3, 2], [1, 1]]

In [7]: df[0].as_matrix()
Out[7]:
array([array([[ 1., 2.],
[ 2., nan]]),
array([[3, 2],
[1, 1]])], dtype=object)

In [8]: np.array( [ item for item in df[0].as_matrix() ] )
Out[8]:
array([[[ 1., 2.],
[ 2., nan]],

[[ 3., 2.],
[ 1., 1.]]])

In [9]: np.nanmean( np.array( [ item for item in df[0].as_matrix() ]
...: ), axis=0 )
Out[9]:
array([[ 2. , 2. ],
[ 1.5, 1. ]])

In [10]: np.nanmean( np.array( [ item for item in df[0].as_matrix()
...: ] ), axis=1 )
Out[10]:
array([[ 1.5, 2. ],
[ 2. , 1.5]])

In [11]: np.nanmean( np.array( [ item for item in df[0].as_matrix()
...: ] ), axis=2 )
Out[11]:
array([[ 1.5, 2. ],
[ 2.5, 1. ]])

关于python - pandas 数据框单元格中 numpy 数组的元素平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419214/

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