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

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
添加回答
舉報