重新调整列的形状以允许总和而不是所有值

2024-09-30 05:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含10列的数据帧,它成功地加载到分类器中。现在我尝试加载列的总和,而不是全部10列。你知道吗

previous_games_stats = pd.read_csv('stats/2016-2017 CANUCKS STATS.csv', header=1)
numGamesToLookBack = 10;

X = previous_games_stats[['GF', 'GA']]

X = X[0:numGamesToLookBack] #num games to look back
stats_feature_names = list(X.columns.values)

totals = pd.DataFrame(X, columns=stats_feature_names)

y = previous_games_stats['Unnamed: 7'] #outcome variable (win/loss)
y = y[numGamesToLookBack+1]

df = pd.DataFrame(iris.data, columns=iris.feature_names)
stats_df = pd.DataFrame(X, columns=stats_feature_names).sum()

最后一行(末尾有.sum())导致stats_df的格式如下:

   GF  GA
0   2   1
1   4   3
2   2   1
3   2   1
4   3   4
5   2   4
6   0   3
7   0   2
8   2   5
9   0   3

收件人:

GF    17
GA    27

但我想保持相同的格式,所以最终结果应该是:

    GF    GA
0   17    27

由于正在重新格式化,因此出现以下错误:

IndexError: boolean index did not match indexed array along dimension 0; dimension is 4 but corresponding boolean dimension is 3

我该怎么做才能保持格式不变?


Tags: columnscsvdataframedfnames格式statsgames
1条回答
网友
1楼 · 发布于 2024-09-30 05:20:31

如果调用sumDataFrame,则获取Series。对于一行DataFrame使用:

stats_df = pd.DataFrame(X, columns=stats_feature_names).sum().to_frame().T

另一种解决方案:

df1 = pd.DataFrame(X, columns=stats_feature_names)
stats_df = pd.DataFrame([df1.sum().values], columns=df.columns)

相关问题 更多 >

    热门问题