为了账号安全,请及时绑定邮箱和手机立即绑定

从 pandas .mean() 中排除列

从 pandas .mean() 中排除列

慕妹3146593 2023-06-27 13:08:21
我有一个 df ,其中包含给定年份的给定统计数据中每个团队的排名。它看起来像这样:teamID  yearID  W   L   IP  WHIP    K%  BB% HR/9    ERA FIP ERA-    FIP-    K/BB+   WHIP+   K%+ BB%+    WAR1209    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 列是必要的原因。
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

只需使用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


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信