gpt4 book ai didi

python - 从 pandas .mean() 中排除列

转载 作者:行者123 更新时间:2023-12-05 02:50:33 25 4
gpt4 key购买 nike

我有一个 df,其中包含每个团队在给定年份的给定统计数据中的排名。它看起来像这样:

teamID  yearID  W   L   IP  WHIP    K%  BB% HR/9    ERA FIP ERA-    FIP-    K/BB+   WHIP+   K%+ BB%+    WAR
1209 Athletics 2001.0 2.0 6.0 3.0 7.0 19.0 9.0 1.0 7.0 5.0 7.0 5.0 8.0 7.0 11.0 10.0 4.0

我想为每一行创建一个具有平均排名的列,但是执行 df.mean(axis=1) 包括年份 (2001) 并且确实会忽略数字。任何人都知道如何使用 lambda 和 .apply() 解决这个问题,或者是否有可以排除某些列的 kwarg?我还没有找到一个。我想跨年执行此操作,因此需要 yearID 列。

最佳答案

只需使用 loc[] 和对列的理解将其从您的计算中排除。

df = pd.read_csv(io.StringIO("""teamID  yearID  W   L   IP  WHIP    K%  BB% HR/9    ERA FIP ERA-    FIP-    K/BB+   WHIP+   K%+ BB%+    WAR
1209 Athletics 2001.0 2.0 6.0 3.0 7.0 19.0 9.0 1.0 7.0 5.0 7.0 5.0 8.0 7.0 11.0 10.0 4.0"""), sep="\s+")

df["mean"] = df.loc[:,[c for c in df.columns if c!= "yearID"]].mean(axis=1)

输出

         teamID  yearID    W    L   IP  WHIP    K%  BB%  HR/9  ERA  FIP  ERA-  FIP-  K/BB+  WHIP+   K%+  BB%+  WAR    mean
1209 Athletics 2001.0 2.0 6.0 3.0 7.0 19.0 9.0 1.0 7.0 5.0 7.0 5.0 8.0 7.0 11.0 10.0 4.0 6.9375

关于python - 从 pandas .mean() 中排除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63626951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com