我试图为数据帧的每一列计算前面所有行的平均值,并将计算出的平均值列添加到数据帧中
我正在使用一组nba比赛数据,其中包含20+个特征(列),我正在尝试计算这些特征的平均值。数据集示例如下(注“……”表示其余要素列)
Team TeamPoints OpponentPoints.... TeamPoints_mean OpponentPoints_mean
ATL 102 109 .... nan nan
ATL 102 92 .... 102 109
ATL 92 94 .... 102 100.5
BOS 119 122 .... 98.67 98.33
BOS 103 96 .... 103.75 104.25
计算两列的示例:
dataset = pd.read_csv('nba.games.stats.csv')
df = dataset
df['Game_mean'] = (df.groupby('Team')['TeamPoints'].apply(lambda x: x.shift().expanding().mean()))
df['TeamPoints_mean'] = (df.groupby('Team')['OpponentsPoints'].apply(lambda x: x.shift().expanding().mean()))
同样,代码只计算平均值并将列一次添加到数据帧中。有没有一种方法可以获取列的平均值并将它们添加到数据帧中,而不必一次执行一个操作?循环?下面是我要找的例子
Team TeamPoints OpponentPoints.... TeamPoints_mean OpponentPoints_mean ...("..." = mean columns of rest of the feature columns)
ATL 102 109 .... nan nan
ATL 102 92 .... 102 109
ATL 92 94 .... 102 100.5
BOS 119 122 .... 98.67 98.33
BOS 103 96 .... 103.75 104.25
试试这个:
(0)样本输入:
然后处理:
(1)边表获取边上的所有平均值(我没有找到累积平均值函数,所以使用
cumsum
+count
)(2)在索引上连接回:
要获取所有列,可以执行以下操作:
但是,如果
Team
是一个列而不是索引,那么您应该去掉它:你也可以这样做
或者手动定义要取平均值的列的列表
cols_for_mean
,然后执行以下操作相关问题 更多 >
编程相关推荐