我有一个“团队”、"HA“(客场主场)、”攻击“、”防御“的数据框架。

我需要的是一个表,按小组分组,有4列,如下所示

我想可以用聚合函数来完成,但我真的不知道怎么做
df_ad=df_calc.groupby(['Team','Liga']).agg...在SQL中等效的是
SELECT Team, CASE
WHEN HA='Home' THEN attack
END AS Home_attack, CASE
WHEN HA='Home' THEN defense
END AS Home_defense, CASE
WHEN HA='Away' THEN attack
END AS Away_attack, CASE
WHEN HA='Away' THEN defense
END AS Away_defense
FROM df_calc;发布于 2022-07-04 18:04:31
只需转动你的数据:
out = df.pivot('Team', 'HA', ['attack', 'defense'])
out.columns = out.columns.swaplevel().to_flat_index().map(' '.join)
out = out.reset_index()
print(out)
# Output
Team Away attack Home attack Away defense Home defense
0 A. San Luis 1 3 2 4
1 AC Milan 5 7 6 8
2 AS Roma 9 11 10 12对于第一部分,您可以阅读:How can I pivot a dataframe?
https://stackoverflow.com/questions/72860430
复制相似问题