Python中高效拼接Series生成3列DataFrame并导出CSV的优化方案
高效创建大行数DataFrame并导出CSV的方法
你的当前方法耗时极长的核心原因是每次调用pd.concat都会创建新的DataFrame对象,反复复制已有数据。对于30万行的规模,这种逐行追加的操作时间复杂度为O(n²),数据量越大性能衰减越严重。
最高效的实现方式是先批量收集所有数据,再一次性生成DataFrame,具体步骤如下:
- 初始化数据存储列表
在计算开始前,创建三个空列表分别对应三列数据:
text_a_list = [] text_b_list = [] score_list = []
- 循环收集数据
在你的计算逻辑中,每得到一组value1、value2、value3,直接将它们追加到对应列表:
# 示例计算循环(替换为你的实际计算逻辑) for item in your_data_source: value1 = calculate_text_a(item) value2 = calculate_text_b(item) value3 = calculate_score(item) text_a_list.append(value1) text_b_list.append(value2) score_list.append(value3)
- 一次性生成DataFrame
所有数据收集完成后,用字典直接构造完整的DataFrame:
import pandas as pd final_df = pd.DataFrame({ "Text A": text_a_list, "Text B": text_b_list, "Score": score_list })
- 导出为CSV文件
最后调用to_csv导出,关闭索引可减小文件体积:
final_df.to_csv("output.csv", index=False)
性能优势说明
这种方式的时间复杂度为O(n):列表的append操作是均摊常数时间,一次性构造DataFrame仅需遍历一次数据。相比逐行concat,30万行数据的处理时间会从分钟级压缩到秒级,内存占用也更可控。
内容的提问来源于stack exchange,提问作者Lefloch Had
相关产品推荐
相关产品推荐

