我一直在尝试从数据集中清除一个特定的列。我多次使用函数. apply()以便丢弃可能存在于列的字符串值中的任何符号。
对于每个符号,函数如下:.应用(λ x:十.替换(""、""))
虽然我的代码可以工作,但它相当长,而且不是那么干净。我想知道是否有更短和/或更好的方式来清理列。
下面是我的代码:
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"列中删除了什么。
有人能帮帮我吗?
此致
3条答案
按热度按时间lvjbypge1#
您也可以使用regex:
正则表达式模式:
Review
:替换"审查"一词|
:或[:\'"#{}_]
-方括号[]
中的任意字符注:
如果您希望删除所有标点符号:你可以用这个代替
这将删除以下字符:
n6lpvg4x2#
试试这个:
zf2sa74q3#