Python pandas中的字符串替换方法产生意外结果
我试图使用stringreplace方法更改数据帧上35000行的值。然而,我的解决方案并没有返回我想要的结果,我也不知道为什么它会失败。以下是数据框的一个简单示例:Python pandas中的字符串替换方法产生意外结果,python,pandas,Python,Pandas,我试图使用stringreplace方法更改数据帧上35000行的值。然而,我的解决方案并没有返回我想要的结果,我也不知道为什么它会失败。以下是数据框的一个简单示例: import pandas as pd liste = ['1_8','1_8','1_8','1_8','1_8','1_8','1_9', '1_9', '1_9','1_9','1_10','1_10','1_10','1_10','1_10','1_10','1_11','1_11'] mycooldataframe =
import pandas as pd
liste = ['1_8','1_8','1_8','1_8','1_8','1_8','1_9', '1_9', '1_9','1_9','1_10','1_10','1_10','1_10','1_10','1_10','1_11','1_11']
mycooldataframe = pd.DataFrame(liste, columns =['bib'])
打印(MyColDataFrame)
我想把1_8改成108。类似地,我想替换1_11,使其成为110。我已尝试使用以下方法解决此问题:
mycooldataframe['bib'] = mycooldataframe['bib'].str.replace('1_8', '108')
,效果很好。它给我108。但如果我使用:
mycooldataframe['bib'] = mycooldataframe['bib'].str.replace('1_10', '110')
这给了我1010。为什么不起作用?有没有更好的办法来解决这个问题。非常感谢您的帮助。示例中的代码按预期工作。 如果您在其他情况下遇到问题,可以尝试使用字典:
value_map = {'1_8':'108', '1_10':'110'}
mycooldataframe= mycooldataframe.replace(value_map)
我完全使用了你的代码,它似乎对我很好。你的命令对我很好。你到底想达到什么目的?嗯。。它似乎适用于我的代码示例,但不适用于数据集:/I抱歉。我觉得这很奇怪-有什么建议吗?你的解决方案奏效了,但我不知道为什么它解决了这个问题。干杯
value_map = {'1_8':'108', '1_10':'110'}
mycooldataframe= mycooldataframe.replace(value_map)