如何在Pandas DataFrame中合并A、B、C列且保留D、F列?
解决方法
问题根源
你遇到的情况大概率是两个原因之一:
- 操作的
newdf本身就不是包含所有5列的完整数据集(比如之前只提取了A/B/C列赋值给它) - 不小心把赋值语句写错成了覆盖整个DataFrame,而非新增列
正确操作步骤
假设你的原始完整数据集叫df:
- 第一步:先复制完整数据集到
newdf,避免修改原数据
newdf = df.copy()
- 第二步:新增合并列
ABC,这一步不会删除原有列
newdf['ABC'] = newdf['A'] + newdf['B'] + newdf['C']
执行完后,newdf会包含原始的A、B、C、D、F列,加上新增的ABC列。
可选:删除原A/B/C列
如果不需要保留A、B、C三列,可以在新增ABC后执行:
newdf = newdf.drop(['A', 'B', 'C'], axis=1)
这样最终的newdf就只有ABC、D、F三列。
避坑提醒
绝对不要写成newdf = newdf['A'] + newdf['B'] + newdf['C'],这会把newdf直接替换成合并后的字符串序列(Series),转成DataFrame后就只剩一列ABC了。
内容的提问来源于stack exchange,提问作者Claud11
相关产品推荐
相关产品推荐

