pandas是python中強大的數據分析庫,但處理不同結構DataFrame間的列復制時,效率至關重要。本文介紹一種高效方法,避免逐行復制帶來的性能瓶頸。
假設我們有兩個結構不同的DataFrame,df1和df2,目標是將df2中的一列或多列復制到df1中,同時保持df1的原始結構。
以下代碼演示了如何高效地完成此操作:
import pandas as pd # 創建示例DataFrame df1 = pd.DataFrame({ 'A': range(4), 'B': range(4), 'C': range(4), 'D': range(4) }) df2 = pd.DataFrame({ 'D': [11, 22, 33], 'E': ['aa', 'bb', 'cc'] }) # 將df2的'D'列復制到df1的'A'列 (假設需要調整長度) df1['A'] = df2['D'].reindex_like(df1['A']).values # 將df2的'E'列添加到df1 (如果df1沒有'E'列) df1['E'] = df2['E'].reindex_like(df1['A']).values # 打印結果 print(df1)
此方法利用reindex_like()函數調整df2列的索引,使其與df1對應列的索引匹配,然后使用.values屬性高效地將數據賦值給df1。這比逐行復制效率更高,尤其在大數據集上。 如果df2的列長度短于df1,多余部分將填充缺失值(NaN)。 如果需要在df1中添加新的列(例如df2的’E’列),可以直接賦值。 這種方法簡潔高效,適用于各種數據量的情況。
立即學習“Python免費學習筆記(深入)”;
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END