替换单元格内的特定值,而不在数据框中查找其他值

时间:2018-01-26 08:15:15

标签: python python-2.7 pandas

我正在使用pandas并使用以下数据框(df)和列(mycol1)。

     mycol1
-----------------
|ABC            | 
|CDE            |
|EFG            |
|3              |
|2, GHI         |
|IJK            |
|2,4 KLM        |
|MNO            |
|5              |
|1, 2, 3, OPQ   |
|7 QRS          |
|STU            |
|UWX            |
|7              |
|XYZ            |
-----------------

我在.replace方法中使用了以下代码,但它替换了整个单元格字符串值,而不仅仅是数字。:

df.mycol1.replace(to_replace=({'1':'anything','2':'Something',
'3':'Values here',
'4':'Homework','5':'my work',
'6':'Any values here',
'7':'More values'}))

我想用字符串值替换每个单元格中的数字代码,以便字符串值与单元格中的现有字符串连接。例如,

     mycol1
-----------------
|ABC            
|CDE        
|EFG            
|Values here    
|Something, GHI 
|IJK            
|Something,Homework KLM
|MNO            
|my work              
|anything, Something, Values here, OPQ  
|More values QRS            
|STU            
|UWX            
|More values              
|XYZ            
-----------------

有人可以帮我这个吗?提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你需要replace字典,数字作为带代码的字符串,替换子字符串添加regex=True

d = {'1':'a', '2':'b', '3':'c', '4':'d', '7':'e'}
df['mycol2'] = df['mycol1'].replace(d, regex=True)
print (df)
          mycol1        mycol2
0            ABC           ABC
1            CDE           CDE
2            EFG           EFG
3         2, GHI        b, GHI
4            IJK           IJK
5        2,4 KLM       b,d KLM
6            MNO           MNO
7   1, 2, 3, OPQ  a, b, c, OPQ
8          7 QRS         e QRS
9            STU           STU
10           UWX           UWX
11           XYZ           XYZ