移除DataFrame各列重复条目,求Jupyter Notebook实现代码
单列去重的DataFrame转换方案
实现思路
- 针对DataFrame的每一列独立执行去重操作,保留值的首次出现顺序
- 利用pandas的批量处理能力,一次性完成1000列的去重,避免逐列手动操作
可直接运行的Jupyter代码
import pandas as pd import numpy as np # ---------------------- # 替换为你的真实数据读取逻辑 # 示例:生成1000列的模拟DataFrame np.random.seed(42) raw_df = pd.DataFrame({ f'column_{idx}': np.random.choice(['X', 'Y', 'Z', 'W'], size=150) for idx in range(1000) }) # ---------------------- # 定义单列去重函数:保留首次出现值,重置索引 def deduplicate_column(series): return series.drop_duplicates(keep='first').reset_index(drop=True) # 对所有列批量应用去重 target_df = raw_df.apply(deduplicate_column) # 可选:查看处理后前5行数据 print(target_df.head())
关键细节说明
drop_duplicates(keep='first'):确保只保留每个值第一次出现的记录,后续重复项直接剔除,维持原始数据的顺序reset_index(drop=True):解决去重后列索引不连续的问题,让每列的索引从0开始连续编号apply方法:pandas内置的批量处理接口,针对1000列的场景效率足够,无需额外优化
注意:若各列去重后的行数不一致,pandas会自动用
NaN填充较短列的空缺行,这是DataFrame的结构化特性,符合常规数据处理逻辑
内容的提问来源于stack exchange,提问作者Anunay sao
相关产品推荐
相关产品推荐

