如何对DataFrame的Products列内数值排序以去除重复行?
解决方案
没问题,我来帮你搞定这个需求!下面是基于pandas的实现方案,能快速把Products列里的数值按升序排序,处理后相同的数值组合会统一格式,后续去重就很方便了:
步骤1:定义处理函数
先写一个用来排序单个Products字符串的函数:
def sort_products(product_str): # 拆分字符串→转整数→排序→转回逗号分隔的字符串 num_list = sorted(map(int, product_str.split(','))) return ','.join(map(str, num_list))
步骤2:应用函数到DataFrame
把这个函数应用到你的DataFrame的Products列上:
import pandas as pd # 你的原始数据 df = pd.DataFrame({ 'ID': [1, 2], 'Name': ['XX', 'XX'], 'Products': ['34,21,14', '11,15,9'] }) # 对Products列执行排序处理 df['Products'] = df['Products'].apply(sort_products) # 按需去重(如果有重复行的话) df = df.drop_duplicates() # 查看结果 print(df)
运行后就能得到你想要的输出:
ID Name Products 0 1 XX 14,21,34 1 2 XX 9,11,15
额外提示
如果你的Products列存在空值、非数字字符这类特殊情况,可以给函数加个容错判断,避免报错:
def sort_products_safe(product_str): if not product_str: # 处理空值 return product_str try: num_list = sorted(map(int, product_str.split(','))) return ','.join(map(str, num_list)) except ValueError: # 处理非数字内容 return product_str
内容的提问来源于stack exchange,提问作者Pravellika
相关产品推荐
相关产品推荐

