如何将两个无共同列的DataFrame分别作为两列写入CSV文件
你之前三个方案的核心问题都是用错了合并逻辑,你要的是行对齐的两列并排拼接,不是按共同列关联的merge操作。
之前方案错误原因
- 方案1:基于公共常量列的merge会生成笛卡尔积,行数是两个df行数的乘积,你的数据量太大直接触发内存溢出。
- 方案2:把数值列作为关联键,两列数值没有对应关联关系,外连接后数据会错位堆叠在不同行。
- 方案3:未预先声明tmp列就作为关联键,直接触发键不存在的报错,即使提前加了tmp列也会复现方案1的内存溢出问题。
正确实现代码
你不需要用merge,两种写法都可以实现需求:
写法1:一步生成目标DataFrame(推荐)
直接把两个数组传入DataFrame构造函数,指定对应列名即可:
df_500 = pd.DataFrame({ 'Frequency': freq_BP[L_BP], 'PSD': PSDclean_BP[L_BP] })
写法2:拼接两个已生成的独立DataFrame
如果已经生成了两个独立的单列DataFrame,用concat按列维度拼接即可:
df_500 = pd.concat([df_BP_frq, df_BP_psd], axis=1)
之后直接用你原来的CSV导出代码即可,输出的CSV就会是Frequency和PSD两列行对齐的结构。如果两个数组长度不一致,短数组末尾的空缺位置会自动填充NaN,你可以根据需求提前做长度对齐处理。
内容的提问来源于stack exchange,提问作者lqope54
相关产品推荐
相关产品推荐

