我有多個列,其中我合并了之前包含字串的列中的所有值,并用逗號分隔它們。唯一的問題是,這樣做顯然“保留”了任何重復值,即使我根據合并完成的列洗掉了重復值,對于 Col_A 列上的值“5”,Col_B 上的相應值是 James,Maria ,哈里森。
不幸的是,輸出看起來像:James,Maria,James,Harrison,Maria,Marina,Harrison,這是我一直試圖通過各種方法(例如應用和拆分)擺脫的。
這是我最近的嘗試:
Import pandas as pd
Import numpy as np
df1['Col_B'] = ','.join(set(df1['Col_B'].split(',')))
df1
Original output:
Index Col_A Col_B
0 5 Maria,Harrison,James,Harrison,Maria,Maria
1 2 Maria,Jimmy,Emma,Jim,Jim,Maria,Jimmy,Jimmy
2 46 ...
3 184 ...
4 31 ...
5 81 ...
Desired output:
Index Col_A Col_B
0 5 Maria,Harrison,James
1 2 Maria,Jimmy,Emma,Jim
2 46 ...
3 184 ...
4 31 ...
5 81 ...
任何建議將不勝感激。在網上找了一段時間,但無法找到這個確切應用程式的解決方案。
uj5u.com熱心網友回復:
很多方法可以做到這一點,
如果原來的順序沒有任何意義,那么
df['Col_B'].str.split(',').apply(lambda x : ','.join(set(x)))
0 Maria,Harrison,James,Harrison,Maria,Maria
1 Maria,Jimmy,Emma,Jim,Jim,Maria,Jimmy,Jimmy
2 ...
3 ...
4 ...
5 ...
或者
df['Col_B'].str.split(',').apply(pd.unique)
0 [Maria, Harrison, James]
1 [Maria, Jimmy, Emma, Jim]
2 [...]
3 [...]
4 [...]
5 [...]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424757.html
上一篇:在Python中,我想從字串中決議日期范圍以獲取date_from和date_to
下一篇:將小時數添加到時間序列
