删除重复列名数据

先说需求: 当因为某种原因(当两个表有同名项,且横向合并时),数据列出现重名的情况,而且同名列数据还不相同时,需要保留第一个数据列(A,A,保留第一个A列)
方法:

  1. 出现 重复 两字,第一时间想到就是drop_duplicates()方法,但此处不通,因为同名列的数据不一样。不过可以使用index.duplicated()方法,在借助loc方法删除重复列
#创建同名列数据框
df=pd.DataFrame(np.random.randn(3,5),columns=list('aabcc'))
df

在这里插入图片描述

#删除同名列,保留前面一项
df=df.loc[:,~df.columns.duplicated()]
df

在这里插入图片描述

  1. 利用groupby()方法,按列名合并。
#创建同名列数据框
df=pd.DataFrame(np.random.randn(3,5),columns=list('aabcc'))
df

在这里插入图片描述

df=df.groupby(level=0,axis=1).first()  #后一列就把first变为last即可
df

在这里插入图片描述
总结:
一般情况下,以上两种方法都是可行。但是,在某些情况下,第一种方法是最可靠的。如果同名数据列中保留的列有NaN值(A,A,第一个A列数据存在NaN值,而第二个A列数据没有NaN值),执行groupby操作,Nan值会变为第二个A列对应的值,从而使数据化不准确。
如果还有其他方法删除重名列方法,欢迎评论交流

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值