首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除重复的python/pandas

删除重复的python/pandas
EN

Stack Overflow用户
提问于 2021-01-22 16:58:38
回答 2查看 41关注 0票数 0

我有这样的数据:

代码语言:javascript
复制
d = {'col1': ['1-2-3', '2-2-3'], 'col2': ['1-2-2-3', '4-4-4']}
df = pd.DataFrame(data=d)
df

    col1    col2
0   1-2-3   1-2-2-3
1   2-2-3   4-4-4

为了实现这一点,我需要删除重复项并保留顺序:

代码语言:javascript
复制
    col1    col2
0   1-2-3   1-2-3
1   2-3     4
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-22 17:00:00

使用DataFrame.applymap...

如果顺序很重要,请结合使用splitdict.fromkeys删除重复项,最后一次加入:

代码语言:javascript
复制
df = df.applymap(lambda x: '-'.join(dict.fromkeys(x.split('-')).keys()))
print (df)
    col1   col2
0  1-2-3  1-2-3
1    2-3      4

如果顺序不重要,请使用sets:

代码语言:javascript
复制
df = df.applymap(lambda x: '-'.join(set(x.split('-'))))
print (df)
    col1   col2
0  3-2-1  3-2-1
1    3-2      4
票数 1
EN

Stack Overflow用户

发布于 2021-01-22 17:13:25

drop_duplicates是您可以使用的通用应用程序接口。但在这种特殊情况下,您可以创建一个临时列,将所有数字放在一个列表中。然后再次将其转换为非重复字符串

代码语言:javascript
复制
df = df.apply(lambda x: x.str.split('-'), axis=1) 
df['col1'] = df['col1'].apply(lambda x: '-'.join((list(dict.fromkeys(x)))) )
df['col2'] = df['col2'].apply(lambda x: '-'.join((list(dict.fromkeys(x)))) )
df
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65842080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档