gpt4 book ai didi

python - 清洁 Pandas 列的最佳方法

转载 作者:行者123 更新时间:2023-12-02 17:58:36 25 4
gpt4 key购买 nike

我一直在尝试从数据集中清理特定列。我多次使用 .apply() 函数以便抛出任何可能出现在列的字符串值中的符号

对于每个符号,函数如下:.apply(lambda x: x.replace("", ""))

虽然我的代码可以工作,但它很长而且不太干净。我想知道是否有更短和/或更好的方法来清洁色谱柱。

这是我的代码:

df_reviews = pd.read_csv("reviews.csv")
df_reviews = df_reviews.rename(columns={"Unnamed: 0" : "index", "0" : "Name"})
df_reviews['name'] = df_reviews["Name"].str.split(':', expand=True)[0]


df_reviews['name'] = df_reviews['name'].apply(lambda x: x.replace("Review", "")).apply(lambda x: x.replace(":", "")).apply(lambda x: x.replace("'", "")).apply(lambda x: x.replace('"', "")).apply(lambda x: x.replace("#", ""))\
.apply(lambda x: x.replace("{", "")).apply(lambda x: x.replace("}", "")).apply(lambda x: x.replace("_", "")).apply(lambda x: x.replace(":", ""))



df_reviews['name'] = df_reviews['name'].str.strip()

如您所见,许多 .apply() 函数使得很难清楚地看到从“name”列中删除的内容。

有人可以帮助我吗?

亲切的问候

最佳答案

您还可以使用正则表达式:

df_reviews['name'] = df_reviews['name'].str.replace('Review|[:\'"#{}_]', "", regex=True)


正则表达式模式:

'Review|[:\'"#{}_]'
  • 评论:替换“评论”一词
  • |:
  • [:\'"#{}_] - 方括号内的任意字符 []


注意:

如果您想删除所有标点符号:您可以使用它

import string

df_reviews['name'] = df_reviews['name'].str.replace(f'Review|[{string.punctuation}]', "", regex=True)

这将删除以下字符:

!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~

关于python - 清洁 Pandas 列的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75008242/

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