gpt4 book ai didi

python - pd.Series.str.lower.replace ('str' , 'replace_str' ) 不起作用但 pd.Series.str.replace。 ('STR' , 'replace_str' ) 呢?

转载 作者:行者123 更新时间:2023-11-28 17:58:18 33 4
gpt4 key购买 nike

我正在解决这里的 Dataquest 问题:https://app.dataquest.io/m/293/data-cleaning-basics/5/removing-non-digit-characters

问题的解决方案是将数据框 laptops 中的列 ram 替换为可以通过删除字符串“GB”转换为数字数据类型的字符串。

在这个问题中,代码 laptops['ram'] = laptops['ram'].str.lower().replace('gb','') 没有生成正确的答案,我试过了,因为它说明了情况。

但是,laptops['ram'] = laptops['ram'].str.replace('GB','') 确实有效。显然,所有源数据都包含大写的字符串“GB”。

这是为什么? pd.Series.str.lower() 绝对是一种方法,那么为什么第一种方法没有返回所需的结果呢?

最佳答案

你需要Series.str.replace对于默认子字符串替换:

laptops = pd.DataFrame({'ram': ['ss GB', 'fff GB', 'GB']})

laptops['ram'] = laptops['ram'].str.lower().str.replace('gb','')
print (laptops)

0 ss
1 fff
2

或在 Series.replace 中添加 regex=True :

laptops['ram'] = laptops['ram'].str.lower().replace('gb','', regex=True)
print (laptops)
ram
0 ss
1 fff
2

如果只使用Series.replace它不适用于子字符串:

laptops['ram'] = laptops['ram'].str.lower().replace('gb','')
print (laptops)
ram
0 ss gb
1 fff gb
2

关于python - pd.Series.str.lower.replace ('str' , 'replace_str' ) 不起作用但 pd.Series.str.replace。 ('STR' , 'replace_str' ) 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57000448/

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