You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按Player列的第二个字符串(姓氏)对pandas DataFrame排序

Pandas按Player列姓氏排序实现方案

你可以直接利用sort_values的key参数提取姓氏作为排序依据,代码如下:

# 按姓氏排序pitching_df
pitching_df = pitching_df.sort_values(
    by='Player',
    key=lambda x: x.str.split().str[-1]
)

# 同理处理batting_df
batting_df = batting_df.sort_values(
    by='Player',
    key=lambda x: x.str.split().str[-1]
)

代码说明

  • str.split()会将Player列的字符串按空格切割为列表,比如Andre Duffty切割后为['Andre', 'Duffty']
  • 这里用str[-1]取列表最后一位元素,而非str[1],是为了兼容带有中间名的姓名格式,保证取到的始终是姓氏
  • 如果使用的pandas版本低于1.1.0不支持key参数,可以用临时列的方式实现:
# 低版本pandas兼容方案
# 处理pitching_df
pitching_df['last_name'] = pitching_df['Player'].str.split().str[-1]
pitching_df = pitching_df.sort_values('last_name').drop('last_name', axis=1)

# 处理batting_df
batting_df['last_name'] = batting_df['Player'].str.split().str[-1]
batting_df = batting_df.sort_values('last_name').drop('last_name', axis=1)

内容的提问来源于stack exchange,提问作者user15586908

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:45:03