亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除不同列中的重復值

刪除不同列中的重復值

智慧大石 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條經驗 獲得超16個贊

想法是從列中刪除重復項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 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號