一個資料框有 3 列
A B C
^0hand(%s)leg$ 27;30 42;54
^-(%s)hand0leg 39;30 47;57
^0hand(%s)leg$ 24;33 39;54
因此,如果這些模式相似,則 A 列具有這樣的正則運算式模式,例如,現在第 1 行和第 3 行相似,因此它必須合并兩行并僅輸出最大值,如下所示:
輸出:
A B C
^0hand(%s)leg$ 27;33 42;54
^-(%s)hand0leg 39;30 47;57
任何線索都會有所幫助
uj5u.com熱心網友回復:
你可以使用:
(df.set_index('A').stack()
.str.extract('(\d );(\d )').astype(int)
.groupby(level=[0,1]).agg(max).astype(str)
.assign(s=lambda d: d[0] ';' d[1])['s'] # OR # .apply(';'.join, axis=1)
.unstack(1)
.loc[df['A'].unique()] ## only if the order of rows matters
.reset_index()
)
輸出:
A B C
0 ^0hand(%s)leg$ 27;33 42;54
1 ^-(%s)hand0leg 39;30 47;57
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/358682.html
上一篇:查找巧合并添加列
下一篇:正則運算式匹配多個字串之一
