Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pandas中的字符串替换方法产生意外结果_Python_Pandas - Fatal编程技术网

Python pandas中的字符串替换方法产生意外结果

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 =

我试图使用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 = 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)