pandas如何将单个DataFrame的A1列合并至A列并删除A1列
解决方案
直接用pd.concat做纵向拼接就能实现,逻辑非常直接:
- 拆分出两个子数据集,第一个保留原表的
id、A列 - 第二个子数据集保留原表的
id列,将A1列重命名为A - 纵向拼接两个子数据集,重置索引即可,原
A1列不需要额外单独删除。
完整代码:
import pandas as pd import numpy as np # 原始测试数据 df = pd.DataFrame({ 'id': [0.1, 0.2, 0.3, 0.4], 'A': [1, 2, np.NaN, np.NaN], 'A1': [np.NaN, np.NaN, 3, 4] }) # 合并逻辑 df_result = pd.concat( [ df[['id', 'A']], df[['id', 'A1']].rename(columns={'A1': 'A'}) ], ignore_index=True )
执行后df_result的输出和你给出的预期结果完全匹配:
id A 0 0.1 1.0 1 0.2 2.0 2 0.3 NaN 3 0.4 NaN 4 0.1 NaN 5 0.2 NaN 6 0.3 3.0 7 0.4 4.0
如果你后续有更多同规则的列(比如A2、A3)需要合并到A列,只需要在concat的列表里追加对应重命名后的子表即可,不需要修改其他逻辑。
内容的提问来源于stack exchange,提问作者codemechanics
相关产品推荐
相关产品推荐

