如何用Pandas将空DataFrame与另一个DataFrame合并或更新?
解决方案
方法一:直接指定列构造新DataFrame
这是最简洁高效的方式,直接基于df2的数据,按照df1的列名创建新DataFrame,缺失的列会自动填充NaN:
import numpy as np import pandas as pd df1 = pd.DataFrame(columns=['A','B','C','D','E']) df2 = pd.DataFrame({ 'B': [1,2,3], 'D': [4,5,6], 'E': [7,8,9]}) # 核心代码 result = pd.DataFrame(df2, columns=df1.columns) print(result)
输出结果:
A B C D E 0 NaN 1 NaN 4 7 1 NaN 2 NaN 5 8 2 NaN 3 NaN 6 9
方法二:使用reindex方法
如果需要对齐df1的列结构,可使用reindex方法实现列匹配,缺失列自动填充NaN:
result = df2.reindex(columns=df1.columns)
效率说明
以上两种方法均为Pandas内置的向量级操作,完全避免逐行循环,在处理百万级及以上数据量时性能优异。其中pd.DataFrame(df2, columns=df1.columns)的性能略胜一筹,因为它直接基于原数据的内存块构造新对象,无需额外的对齐计算。
内容的提问来源于stack exchange,提问作者Johnny Tam
相关产品推荐
相关产品推荐

