替换以number python开头的所有内容

时间:2016-12-01 16:35:29

标签: python csv replace

我正在使用ICD-9代码使用python进行数据挖掘项目,我无法将特定代码转换为类别。例如,我试图将001和139之间的所有内容更改为0,将所有内容更改为140和239之间的1,等等

这就是我的尝试:

{{1}}

2 个答案:

答案 0 :(得分:0)

您可以使用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或类似的

动态设置分档和标签

答案 1 :(得分:0)

if语句没有错。

newvalue = 1 if oldvalues <= 139 else 2

将此函数应用为带有map的lambda表达式。