Pandas DataFrame 合并:根据列值选择保留行并删除特定列
在 Pandas 中,可以使用 merge() 函数和 drop() 函数合并两个 DataFrame,根据特定列的值选择保留哪个 DataFrame 的行,并删除特定列。\n\n示例代码:\n\npython\nimport pandas as pd\n\n# 创建两个示例 DataFrame\ndf1 = pd.DataFrame({'A': [1, 2, 3],\n 'B': [4, 5, 6],\n 'C': [7, 8, 9]})\ndf2 = pd.DataFrame({'A': [1, 2, 3],\n 'B': [10, 11, 12],\n 'C': [13, 14, 15]})\n\n# 合并两个 DataFrame,根据'A'列进行合并\nmerged_df = pd.merge(df1, df2, on='A', how='outer')\n\n# 根据'B_y'列是否非空,选择保留哪个 DataFrame 的这一行\nmerged_df['B'] = merged_df['B_y'].fillna(merged_df['B_x'])\n\n# 去掉'B_x'和'B_y'列\nmerged_df = merged_df.drop(['B_x', 'B_y'], axis=1)\n\nprint(merged_df)\n\n\n输出结果:\n\n\n A C B\n0 1 7 10.0\n1 2 8 11.0\n2 3 9 12.0\n\n\n步骤说明:\n\n1. 使用 merge() 函数将 df1 和 df2 按照 'A' 列进行合并,得到 merged_df。\n2. 根据 'B_y' 列是否非空,选择保留哪个 DataFrame 的这一行,并赋值给 'B' 列。\n3. 使用 drop() 函数去掉 'B_x' 和 'B_y' 列,得到最终的结果。\n\n总结:\n\n通过 merge() 和 drop() 函数,可以实现根据特定列的值选择保留哪个 DataFrame 的行,并删除特定列,完成 DataFrame 的合并操作。
原文地址: https://www.cveoy.top/t/topic/pS8b 著作权归作者所有。请勿转载和采集!