删除一行中的重复项 pandas
Remove duplicates in a row pandas
我有一个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
围绕定界符 ,
拆分字符串,然后使用 dict.fromkeys
进行重复数据删除,这也保留了字符串的顺序,最后 join
围绕定界符 ,
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
另一种方法
#原DF
index
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
#output
index
col1
col2
0
(BO),(AD),(TR)
2
如果值顺序不重要你可以简单地做:
df.col1 = df.col1.str.split(',').apply(lambda x: set(x)).str.join(',')
df
#output
index
col1
col2
0
(AD),(BO),(TR)
2
我有一个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
围绕定界符 ,
拆分字符串,然后使用 dict.fromkeys
进行重复数据删除,这也保留了字符串的顺序,最后 join
围绕定界符 ,
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
另一种方法
#原DF
index | 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
#output
index | col1 | col2 |
---|---|---|
0 | (BO),(AD),(TR) | 2 |
如果值顺序不重要你可以简单地做:
df.col1 = df.col1.str.split(',').apply(lambda x: set(x)).str.join(',')
df
#output
index | col1 | col2 |
---|---|---|
0 | (AD),(BO),(TR) | 2 |