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

Pandas按多列排序同时实现Username列不区分大小写排序的问题

解决方案

直接在sort_values的key参数中加入列名判断,仅对Username列做小写转换即可,其余列保持原有排序逻辑:

df = df.sort_values(
    ["Username", "Date", "Value"],
    key=lambda col: col.str.lower() if col.name == "Username" else col
)

如果你的pandas版本低于1.1.0(不支持key参数),可以用临时列的兼容方案:

# 新增临时小写用户名列辅助排序,排序完成后删除
df["_tmp_username_lower"] = df["Username"].str.lower()
df = df.sort_values(["_tmp_username_lower", "Date", "Value"]).drop("_tmp_username_lower", axis=1)

两种方案都可以实现需求:先按用户名小写不区分大小写排序,用户名相同的再按日期、数值顺序排序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:30:05