首页 > 解决方案 > 将采样行添加到数据帧并计算平均值的更 Pythonic 方式

问题描述

我正在尝试从数据框中 CV 10 个随机样本并取平均值,这是我非常基础的版本,感觉非常笨重。谁能推荐一种更pythonic的方式来做到这一点?

graph_data = pd.DataFrame()
for x in range(10):
    y = source_data.loc[filter_1,'attribute'].sample(n=100000)
    y.reset_index(inplace=True, drop=True)
    graph_data[x] = y

graph_data['mean'] = graph_data.mean(axis=1)

标签: pythonpandas

解决方案


list comprehension与 一起使用concat

N = 100000
L=[source_data.loc[filter_1,'attribute'].sample(n=N).reset_index(drop=True) for x in range(10)]
graph_data = pd.concat(L, axis=1).mean(axis=1).to_frame('mean')

推荐阅读