如何计算矩阵中每个单元格的值平均值(如果每个单元格都包含具有这些值的列表)



我有一个大小为20x20的数据帧(类型为pandas.core.frame.DataFrame(。数据帧中的 400 个单元格中的每一个都包含一个包含值的 LIST。我想单独计算每个列表(单元格(的值的平均值。数据帧如下所示:

x          y       z ...
x [1,2,4,3] [1,2,4,3] [1,2,4,3]
y [8,2,6,4] [1,2,4,3] [1,2,4,3]
z [1,2,4,9] [1,2,4,3] [1,2,4,3]
.
.
.

我想得到这样的结果:

x    y   z ...                       x     y    z ...
x [10] [10] [10]                       x 10    10   10
y 20    10   10
y [20] [10] [10]       or this:        z 16    10   10
.
z [16] [10] [10]                       .
.                                      .
.

我的问题是,如何使用矩阵中的值计算每个单元格/列表的平均值?

通过矩阵,如果您指的是熊猫数据帧,并且通过 400 的单元格,我假设您是指 400 列和行(或其中之一(。在 pandas (python( 中,您可以像这样计算平均值:

dataframe['x'] = dataframe['x'].apply(lambda x: sum(x)/len(x)) 

在这里,.apply(( 允许您将函数应用于整个列或数据帧,而 lambda允许您遍历每一行。 值x是一个单元格(列表(,您可以在其上使用 Sum(( 和 len(( 等 Python 函数来计算平均值/平均值。

还有其他几种方法可以做到这一点,但如果有帮助,请告诉我。

更新所有列:

对所有数据帧列执行此操作的快速方法是:

for column in dataframe.columns:
dataframe[column] = dataframe[column].apply(lambda x: sum(x)/len(x))

以下是使用applymap将函数应用于数据帧的每个单元格的方法:

import numpy as np
dfmean = df.applymap(np.mean)
print(dfmean)
col1  col2  col3
0   2.5   2.5   2.5

示例数据

df = pd.DataFrame({'col1': [[1,2,4,3]], 'col2': [[1,2,4,3]],  'col3': [[1,2,4,3]]})

相关内容

最新更新