我有一個df
Name Symbol Dummy
A (BO),(BO),(AD),(TR) 2
B (TV),(TV),(TV) 2
C (HY) 2
D (UI) 2
我需要 df 作為
Name Symbol Dummy
A (BO),(AD),(TR) 2
B (TV) 2
C (HY) 2
D (UI) 2
嘗試使用此功能但未按預期作業。
drop_duplicates
uj5u.com熱心網友回復:
在 delimiter 周圍拆分字串,,然后使用它進行重復資料洗掉dict.fromkeys,它還??保留字串的順序,最后join在 delimiter 周圍,
df['Symbol'] = df['Symbol'].str.split(',').map(dict.fromkeys).str.join(',')
Name Symbol Dummy
0 A (BO),(AD),(TR) 2
1 B (TV) 2
2 C (HY) 2
3 D (UI) 2
uj5u.com熱心網友回復:
另一種方法
#原始DF
| 指數 | col1 | col2 |
|---|---|---|
| 0 | (BO),(BO),(AD),(TR) | 2 |
df.col1 = df.col1.str.split(',').apply(lambda x: sorted(set(x), key=x.index)).str.join(',')
df
#輸出
| 指數 | col1 | col2 |
|---|---|---|
| 0 | (BO),(AD),(TR) | 2 |
如果值順序不重要,您可以簡單地執行以下操作:
df.col1 = df.col1.str.split(',').apply(lambda x: set(x)).str.join(',')
df
#輸出
| 指數 | col1 | col2 |
|---|---|---|
| 0 | (AD),(BO),(TR) | 2 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482319.html
