gpt4 book ai didi

python - 如何在忽略标点符号的情况下删除数据框中的重复项?

转载 作者:行者123 更新时间:2023-12-04 10:49:19 31 4
gpt4 key购买 nike

我有以下数据框 -

  print df

Name | Role |
Mark | Admin |
Mark | Admin. |

df = df.drop_duplicates()
print df

Name | Role |
Mark | Admin |
Mark | Admin. |

我想忽略任何前导或前面的标点符号(在本例中为句号)并删除重复项。

预期输出 -

  df = df.drop_duplicates()
print df

Name | Role |
Mark | Admin |

最佳答案

使用Series.str.strip所有 标点符号 和所有列的空格 DataFrame.apply , 通过 DataFrame.duplicated 获取所有重复项并按 boolean indexing 过滤:

import string
df = df[~df.apply(lambda x: x.str.strip(string.punctuation + ' ')).duplicated()]

print (df)
Name Role
0 Mark Admin

另一个想法是处理删除标点符号的数据:

import string
df1 = df.apply(lambda x: x.str.strip(string.punctuation + ' ')).drop_duplicates()

print (df1)
Name Role
0 Mark Admin

详细信息

#added list for see last space
print ([string.punctuation + ' '])
['!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ ']

关于python - 如何在忽略标点符号的情况下删除数据框中的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59559519/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com