[英]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.