删除不同列中的重复值

我有以下熊猫数据框:


>>>Feature name   error1    error2    error3   error4

0     1     A      overlaps  overlaps  overlaps overlaps

1     2     B       No error 

2     3     C       overlaps  invalid   invalid  

3     4     D     invalid   overlaps  overlaps

我只想为每一行提供唯一的错误,例如:


>>>Feature Name   error1    error2    error3   error4

0     1      A    overlaps  

1     2      B    No error 

2     3      C    overlaps  invalid     

3     4      D    invalid   overlaps  

有什么简单的方法可以得到这个吗?我想也许可以计算每个值每行出现的次数,但后来我不知道如何删除它们


智慧大石
浏览 144回答 2
2回答

侃侃尔雅

想法是从列中删除重复项error,添加DataFrame.reindex添加可能删除的列并分配回来:cols = df.filter(like='error').columnsdf[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  error40        1    A  overlaps       NaN     NaN     NaN1        2    B        No     error     NaN     NaN2        3    C  overlaps   invalid     NaN     NaN3        4    D   invalid  overlaps     NaN     NaN

桃花长相依

尝试用out = pd.DataFrame(list(map(pd.unique, df.loc[:,'error1':].values)),index=df.Feature)Out[333]:                 0         1     2Feature                          1        overlaps      None  None2              No     error  None3        overlaps   invalid  None4         invalid  overlaps  None
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python