Python Pandas如何按类别导出唯一Code至对应CSV文件?
提取Pandas DataFrame中各分类的唯一Code并保存为CSV
当然可以用unique()函数实现你的需求,结合Pandas的分组功能就能完成。下面是具体的实现步骤和代码:
- 按
Category列对DataFrame分组,对每个分组的Code列调用unique()获取唯一值 - 遍历每个分组,将唯一Code转换为可保存的数据格式,输出为对应分类名称的CSV文件
完整实现代码
import pandas as pd # 原始数据初始化 data = [['A', 'code31'], ['A', 'code31323'], ['G', 'code641'], ['F', 'code641'], ['A', 'code2321'], ['F', 'code253'], ['A', 'code135821'], ['G', 'code2318']] df = pd.DataFrame(data, columns=['Category', 'Code']) # 分组提取每个类别的唯一Code grouped_unique_codes = df.groupby('Category')['Code'].unique() # 遍历分组保存为CSV for category, codes in grouped_unique_codes.items(): # 将唯一Code数组转为DataFrame,适配to_csv方法 code_df = pd.DataFrame(codes, columns=['Code']) code_df.to_csv(f'{category}.csv', index=False)
代码说明
df.groupby('Category')['Code'].unique():通过分组操作,对每个分类下的Code列去重,返回一个以分类名为索引、唯一Code数组为值的Seriesto_csv(f'{category}.csv', index=False):将每个分类的唯一Code保存为CSV文件,index=False用于避免写入多余的索引列
可选实现方式(用drop_duplicates先全局去重)
如果你更习惯先整体去重再分组保存,也可以这么写:
import pandas as pd data = [['A', 'code31'], ['A', 'code31323'], ['G', 'code641'], ['F', 'code641'], ['A', 'code2321'], ['F', 'code253'], ['A', 'code135821'], ['G', 'code2318']] df = pd.DataFrame(data, columns=['Category', 'Code']) # 先去除(Category, Code)的重复项 unique_df = df.drop_duplicates(subset=['Category', 'Code']) # 分组保存每个类别的Code for category, group in unique_df.groupby('Category'): group[['Code']].to_csv(f'{category}.csv', index=False)
内容的提问来源于stack exchange,提问作者akrapovic
相关产品推荐
相关产品推荐

