首页 > 解决方案 > 将 lambda 正则表达式应用于 pandas 数据帧并获得正确的结果,但被 [] 包围

问题描述

我正在尝试使用 lambda 和正则表达式从熊猫数据框中的字符串中提取文本,我有正则表达式,可以用正确的数据填充新列,但它被 [] 包围?

构建数据框的代码:

carTypes = {'Car Class Description' : ['A - ECAR - Economy',
            'C - ICAR - Intermediate',
            'D - DCAR - Full Size',
            'E - FFAR - Large SUV - 5 Seater',
            'E1 - GFAR - Large SUV - 7 Seater']}

df_carTypes = pd.DataFrame(carTypes)

将正则表达式应用于数据框中的每一行并生成并使用结果填充新列的代码:

df_carTypes['Car Class Code'] = df_carTypes['Car Class Description'].apply(lambda x: re.findall(r'^\w{1,2}',x))

结果:

我根据需要得到一个具有正确结果的新列,但 [ ] 围绕输出,例如 [A]

有人可以帮忙吗?

抱歉,我无法更好地格式化...

标签: pythonregexpandasdataframe

解决方案


这是由于re.findall()返回列表的结果。您可以使用re.search()and.group()返回一个字符串结果。

df_carTypes['Car Class Code'] = df_carTypes['Car Class Description'].apply(lambda x: re.search(r'^\w{1,2}',x).group())

结果:

              Car Class Description Car Class Code
0                A - ECAR - Economy              A
1           C - ICAR - Intermediate              C
2              D - DCAR - Full Size              D
3   E - FFAR - Large SUV - 5 Seater              E
4  E1 - GFAR - Large SUV - 7 Seater             E1

推荐阅读