首页 > 解决方案 > 用Python中的字符串提取数据框中的最后一个数字

问题描述

我有来自pandas. 我不确定如何开始提取信息。

列中的数据是这样的:

->Company A 100->Company B 60->Company C 80-> Company D
->Company A 100->Company B 53.1->Company C 82.2->Company D 100-> Company G
->Company A 100->Company B 23-> Company D

ETC...

公司的信息并不重要,只有每个项目的最后一个数字。

我想提取最后一个数字之前的数字->并将其粘贴到另一列中。

例如,分别提取8010023

80
100
23

我有这个

import re
text = '->Company A 100->Company B 60->Company C 80-> Company D'
re.findall(r'\d+', text)[-1]

这给出了正确的输出'80'

但是当我这样做时df

re.findall(r'\d+', df['ColumnName'])[-1]

我得到:TypeError:预期的字符串或类似字节的对象

标签: pythonregexpandasdataframeextract

解决方案


使用正则表达式获取浮点数或整数,findall并通过索引获取最后一个值:

df['num'] = df['col'].str.findall(r'([-+]?\d*\.\d+|\d+)').str[-1]
print (df)


                                                 col  num
0  -> Company A 100->Company B 60->Company C 80->...   80
1  -> Company A 100->Company B 53.1->Company C 82...  100
2         -> Company A 100->Company B 23-> Company D   23

推荐阅读