簡體   English   中英

pandas 中的字符串替換方法給出了意外的結果

[英]string replace method in pandas gives an unexpected result

我正在嘗試使用字符串替換方法更改 DataFrame 上 35 000 行的值。 但是,我的解決方案沒有返回我想要的,我無法弄清楚它為什么會失敗。 這是數據框的一個簡單示例:

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']) 

打印(mycooldataframe)

    bib
0   1_8
1   1_8
2   1_8
3   1_8
4   1_8
5   1_8
6   1_9
7   1_9
8   1_9
9   1_9
10  1_10
11  1_10
12  1_10
13  1_10
14  1_10
15  1_10
16  1_11
17  1_11

我想更改 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM