簡體   English   中英

替換所有以數字python開頭的內容

[英]Replace everything that starts with number python

我正在為使用python的數據挖掘項目使用ICD-9代碼,但無法將特定代碼轉換為類別。 例如,我試圖用0更改介於001和139之間的所有內容,使用1更改介於140和239之間的所有內容,等等

這是我嘗試過的:

df = df.replace({'diag_1' : {'(1-139)' : 0, '(140-239)' : 1}})

您可以使用pd.cut實現此目的:

In [175]:
df = pd.DataFrame({'value':np.random.randint(0,20,10)})
df

Out[175]:
   value
0     12
1      2
2     10
3      5
4     19
5      2
6      8
7     14
8     12
9     16

在這里我們將bin間隔設置為(0-5)(5-15),(15-20):

In [183]:    
df['new_value'] = pd.cut(df['value'], bins=[0,5,15,20], labels=[0,1,2])
df

Out[183]:
   value new_value
0     12         1
1      2         0
2     10         1
3      5         0
4     19         2
5      2         0
6      8         1
7     14         1
8     12         1
9     16         2

我認為在您的情況下,以下方法應該起作用:

df['diag_1']= pd.cut(df['diag_1'], [1,140,240] , labels=[1,2,3])

您可以使用np.arange或類似設置動態設置垃圾箱和標簽

如果語句沒有錯。

newvalue = 1 if oldvalues <= 139 else 2

將此功能與map一起用作lambda表達式。

暫無
暫無

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

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