Pandas如何高效将单列所有值(含逗号分隔项)合并为一个列表
Pandas单列多值合并为列表高效实现
核心思路是使用Pandas原生向量化字符串操作和展平方法,完全规避Python层循环,处理百万级数据耗时仅为普通for循环方案的1%不到。
核心代码
# df为你的原始DataFrame,Column1为目标列名 list1 = df["Column1"].str.split(r",\s*", expand=False).explode().tolist()
代码说明
str.split(r",\s*"):用正则匹配逗号加任意数量后续空格作为分隔符拆分字符串,自动去除拆分后元素首尾的多余空格explode():将每个位置的列表元素拆分为单独行tolist():将处理后的Series直接转为Python列表
示例验证
用你给出的测试数据运行效果如下:
import pandas as pd # 构造测试DataFrame df = pd.DataFrame({ "Column1": ["adfghb, gad", "234rwfa", "ballbalba", "9adfad9, 5432", "99a"] }) list1 = df["Column1"].str.split(r",\s*", expand=False).explode().tolist() print(list1) # 输出:['adfghb', 'gad', '234rwfa', 'ballbalba', '9adfad9', '5432', '99a']
极端大数据量优化
如果目标列数据量超过千万行、内存不足以一次性加载,可调整为分块处理模式:
chunk_size = 100000 # 每次处理10万行,可根据内存大小调整 list1 = [] for chunk in pd.read_csv("你的数据文件路径", usecols=["Column1"], chunksize=chunk_size): chunk_list = chunk["Column1"].str.split(r",\s*", expand=False).explode().tolist() list1.extend(chunk_list)
内容的提问来源于stack exchange,提问作者Aleksandr Pay
相关产品推荐
相关产品推荐

