如何对pandas DataFrame列中逗号分隔的值按字母顺序排序
解决方法
直接使用pandas的字符串处理方法结合排序函数即可实现需求,核心代码如下:
# 假设你的DataFrame变量名为df df['things'] = df['things'].str.split(',').apply(lambda x: ','.join(sorted(x)))
代码逻辑说明
- 用
str.split(',')将things列的每个字符串按逗号拆分为列表 - 用
sorted()对拆分得到的列表按字母升序排序 - 用
','.join()将排序后的列表重新拼接为逗号分隔的字符串
完整测试示例
你可以运行以下代码验证效果:
import pandas as pd # 构造和你示例一致的DataFrame df = pd.DataFrame({ 'ID': [1, 2, 3], 'things': ['pen,car,robot', 'lamp,jug,phone', 'switch,pen,book'] }) # 执行处理 df['things'] = df['things'].str.split(',').apply(lambda x: ','.join(sorted(x))) # 输出结果 print(df)
空值兼容处理
如果你的数据中things列存在空值NaN,可以修改代码避免报错:
df['things'] = df['things'].apply(lambda x: ','.join(sorted(x.split(','))) if pd.notna(x) else x)
内容的提问来源于stack exchange,提问作者yellow_smile
相关产品推荐
相关产品推荐

