为了账号安全,请及时绑定邮箱和手机立即绑定

删除不同列中的重复值

删除不同列中的重复值

智慧大石 2023-07-11 13:56:17
我有以下熊猫数据框:>>>Feature name   error1    error2    error3   error40     1     A      overlaps  overlaps  overlaps overlaps1     2     B       No error 2     3     C       overlaps  invalid   invalid  3     4     D     invalid   overlaps  overlaps我只想为每一行提供唯一的错误,例如:>>>Feature Name   error1    error2    error3   error40     1      A    overlaps  1     2      B    No error 2     3      C    overlaps  invalid     3     4      D    invalid   overlaps  有什么简单的方法可以得到这个吗?我想也许可以计算每个值每行出现的次数,但后来我不知道如何删除它们
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

想法是从列中删除重复项error,添加DataFrame.reindex添加可能删除的列并分配回来:


cols = df.filter(like='error').columns

df[cols] = (df[cols].apply(lambda x: pd.Series(x.unique()), axis=1)

                    .reindex(np.arange(len(cols)), axis=1))

print (df)

   Feature name    error1    error2  error3  error4

0        1    A  overlaps       NaN     NaN     NaN

1        2    B        No     error     NaN     NaN

2        3    C  overlaps   invalid     NaN     NaN

3        4    D   invalid  overlaps     NaN     NaN


查看完整回答
反对 回复 2023-07-11
?
桃花长相依

TA贡献1860条经验 获得超8个赞

尝试用


out = pd.DataFrame(list(map(pd.unique, df.loc[:,'error1':].values)),index=df.Feature)

Out[333]: 

                0         1     2

Feature                          

1        overlaps      None  None

2              No     error  None

3        overlaps   invalid  None

4         invalid  overlaps  None


查看完整回答
反对 回复 2023-07-11
  • 2 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信