解析Pandas中的列值

时间:2017-06-19 09:51:59

标签: python pandas parsing dataframe

我的列名称包含以下值:

NY0528_3
NY5366_2
4536
NY1244_5
5363
PH1734_3

期望的输出:

0528
5366
6363
1244
5363
1734

无论我尝试过什么,我都无法获得通用解决方案,但我需要这样做,因为我有200,000行。 谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用extract

df.Name.str.extract('(\d+)')

输出:

0    0528
1    5366
2    4536
3    1244
4    5363
5    1734
Name: Name, dtype: object

答案 1 :(得分:1)

尝试使用正则表达式:

import re

def clean(teststring):
    return re.findall(r"[0-9]{4,4}", teststring)

如果您的数据位于df.col运行:

df.col.apply(clean)