在数据处理中,常需将一个DataFrame的列复制到另一个结构不同的DataFrame中。本文介绍一种高效的Pandas整列复制方法,避免逐单元格复制的低效。
假设有两个结构不同的DataFrame,df1和df2,目标是将df2的某列复制到df1的对应列。
以下代码示例演示如何将df2的列数据复制到df1:
import pandas as pd # 示例DataFrame df1 df1 = pd.DataFrame({ 'A': range(4), 'B': range(4), 'C': range(4), 'D': range(4) }) # 示例DataFrame df2 df2 = pd.DataFrame({ 'D': [11, 22, 33], 'E': ['aa', 'bb', 'cc'] }) # 方法一:利用`loc`进行高效赋值 (推荐) df1['A'] = df2['D'].reset_index(drop=True)[:df1.shape[0]] df1['B'] = df2['E'].reset_index(drop=True)[:df1.shape[0]] # 方法二:使用`concat`和`reindex` (原方法改进) new_A = pd.concat([df1['A'], df2['D']], ignore_index=True) df1 = df1.reindex(range(len(new_A))) df1['A'] = new_A[:df1.shape[0]] # 打印结果 print(df1)
方法一:使用loc进行高效赋值
此方法直接使用loc进行赋值,效率更高,并且更简洁易懂。reset_index(drop=True)重置索引,[:df1.shape[0]]确保复制的长度与df1匹配,避免索引错位。
方法二:改进后的concat和reindex方法
此方法对原代码进行了改进,使其更清晰、更易于理解和维护。 它避免了不必要的行数扩展,只在需要时才进行reindex操作。
两种方法都能高效地将df2的列复制到df1,选择哪种方法取决于个人偏好和代码风格。 但loc方法通常被认为更简洁高效。 记住,在处理大型数据集时,高效的列复制方法至关重要。
以上就是在Pandas中如何高效地将不同结构的DataFrame整列复制?的详细内容,更多请关注知识资源分享宝库其它相关文章!
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。