gpt4 book ai didi

python - 将字符串操作应用于 Pandas 数据框

转载 作者:行者123 更新时间:2023-11-28 20:16:21 25 4
gpt4 key购买 nike

有类似的答案,但我无法将其应用到我自己的案例中我想在我的 pandas 数据框中删除 Windows 目录名称的禁止字符。我尝试使用类似的东西:

df1['item_name'] =  "".join(x for x in df1['item_name'].rstrip() if x.isalnum() or x in [" ", "-", "_"]) if df1['item_name'] else ""

假设我有这样一个数据框

 item_name
0 st*back
1 yhh?\xx
2 adfg%s
3 ghytt&{23
4 ghh_h

我想得到:

   item_name
0 stback
1 yhhxx
2 adfgs
3 ghytt23
4 ghh_h

我怎样才能做到这一点?注意:我之前从网上抓取数据,旧版本使用以下代码

item_name = "".join(x for x in item_name.text.rstrip() if x.isalnum() or x in [" ", "-", "_"]) if item_name else ""

现在,我对相同的项目有了新的观察,我想将它们与旧的观察合并。但是我重新抓取的时候忘记用同样的方法了

最佳答案

你可以将条件归纳为一个负字符类,然后使用str.replace将它们去掉,这里\w代表单词字符alnum + _ \s 代表空格,- 是破折号。对于字符类中的 ^[^\w\s-] 匹配任何不是字母数字的字符,也不是 ["", "-", "_"],那么你可以使用replace方法来移除它们:

df.item_name.str.replace("[^\w\s-]", "")

#0 stback
#1 yhhxx
#2 adfgs
#3 ghytt23
#4 ghh_h
#Name: item_name, dtype: object

关于python - 将字符串操作应用于 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43459307/

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