我有一个包含数值和字符串
数据帧夫妇列和我要删除所有字符,只留下数字如何从字符串中删除所有字符并仅在数据帧中保留数字?
Admit_DX_Description Primary_DX_Description
510.9 - EMPYEMA W/O FISTULA 510.9 - EMPYEMA W/O FISTULA
681.10 - CELLULITIS, TOE NOS 681.10 - CELLULITIS, TOE NOS
780.2 - SYNCOPE AND COLLAPSE 427.89 - CARDIAC DYSRHYTHMIAS NEC
729.5 - PAIN IN LIMB 998.30 - DISRUPTION OF WOUND, UNSPEC
到
Admit_DX_Description Primary_DX_Description
510.9 510.9
681.10 681.10
780.2 427.89
729.5 998.30
代码:
for col in strip_col:
# # Encoding only categorical variables
if df[col].dtypes =='object':
df[col] = df[col].map(lambda x: x.rstrip(r'[a-zA-Z]'))
print df.head()
错误:
回溯(最近通话最后一个):
df[col] = df[col].map(lambda x: x.rstrip(r'[a-zA-Z]'))
文件 “/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/series.py”线2175,在地图 new_values = map_f(值,ARG) 文件 “熊猫/ SRC/inference.pyx”,线1217,在pandas.lib.map_infer(熊猫/ lib.c:63307)
df[col] = df[col].map(lambda x: x.rstrip(r'[a-zA-Z]'))
AttributeError:'int'对象没有属性'rstrip'
嘿它是一个很好的答案,但我得到这个错误** TypeError:期望的字符串或缓冲区**但我想出了一些字符串的值类似于这个“250.82 - DIABETES,.TYPE II”你有什么想法我可以处理这个 – kero
我运行这个新的数据框:'df = pandas.DataFrame({'A':['250.82 - DIABETES,.TYPE II','19 .99 Hello'],'B':['700.52 Test','Test 7.7']})'并且我不得到任何'TypeError'。也许是另一种不同于*** 250.82的字符串 - 糖尿病,.TYPE II ***。 – estebanpdl
我不知道,但它可能是这样的** V22.0 - SUPERVIS NORMAL 1ST PREG ** – kero