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

如何对DataFrame每行从col2开始按字母顺序排序?

问题:对DataFrame指定列按行排序

原始数据

col1col2col3
JoshMarkAndrew
DaveEricBill

需求

对每行从col2开始的列按字母顺序从左到右排序,期望输出:

col1col2col3
JoshAndrewMark
DaveBillEric

错误尝试

尝试了以下代码,但会将第一列的姓名打乱到不同行中:

df[['col2', 'col3']] = pd.DataFrame(zip(*df[['col2', 'col3']].apply(sorted, axis=1).values)).T

解决方案

直接对目标列按行执行排序后,转为列表赋值即可,无需额外的zip和转置操作,这样能保证每行的排序结果与原行一一对应:

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'col1': ['Josh', 'Dave'],
    'col2': ['Mark', 'Eric'],
    'col3': ['Andrew', 'Bill']
})

# 对col2、col3按行排序并赋值
df[['col2', 'col3']] = df[['col2', 'col3']].apply(sorted, axis=1).tolist()

# 输出结果
print(df)

代码说明

  • df[['col2', 'col3']].apply(sorted, axis=1)会对每行的col2和col3值进行字母排序,返回一个包含每行排序后列表的Series
  • 调用.tolist()将Series转为二维列表,直接赋值给目标列即可保持行的对应关系,避免数据错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:15:39