在正常运行时对非常大的数据矩阵(大约150,000*80)上的列进行平均



我在分析非常大的矩阵时有问题。

我有4个大的数字矩阵(从0到1),每个矩阵包含超过100,000行,有70-80列。

我需要对每一列求平均值,并根据列标题将它们添加到列表中。

我尝试使用pandas的内置mean()方法(输入是pandas dataframe),但运行时很疯狂(计算单个的平均值需要许多小时)。列),我负担不起那样的运行时间。有什么建议,我怎么能做到与正常运行时?

我在这里添加我的代码-

def filtering(data):
healthy=[]
nmibc_hg=[]
nmibc_lg=[]
mibc_hg=[]
for column in data:
if 'HEALTHY' in column:
healthy.append(data[column].mean())
elif 'NMIBC_HG' in column:
nmibc_hg.append(data[column].mean())
elif 'NMIBC_LG' in column:
nmibc_lg.append(data[column].mean())

elif 'MIBC_HG' in column and not 'NMIBC_HG' in column:
mibc_hg.append(data[column].mean())

使用df.mean(),它将为数据帧df中的每个数字列生成平均值。列名和摘要结果放入pandas系列中。我在一个有190,000行和12个数字列的数据框上尝试了它,它只花了4秒。在你的数据集上也只需要几秒钟。

最新更新