首页 > 解决方案 > 在 Pandas 中解析字符串

问题描述

我正在处理一个数据框,其中的一列具有这样的值 -

场地
marketable_email_status_m10
email_availability_status_m11
结束_ar_60_to_89_dpd_m11
email_availability_status_m1

我希望我的最终输出使字符串分成两列,如下所示:

场地 文本1 文本2
marketable_email_status_m10 marketable_email_status m10
email_availability_status_m11 email_availability_status m11
结束_ar_60_to_89_dpd_m11 结束_ar_60_to_89_dpd m11
email_availability_status_m1 email_availability_status 米1

我已经能够产生第 3 列,但不确定如何处理第 2 列。

标签: pandasstringparsing

解决方案


extract功能请尝试以下。

df[["text1","text2"]] = df['field'].str.extract(r'^(.*)_(.*)$')

解释:

  • df.str.extract在 DataFrame 的field列上应用函数。
  • 然后使用 2 个捕获组在 DataFrame 中创建 2 个新列,分别命名为text1text2.
  • 第一个捕获组拥有一切_,第二个拥有其余的价值(根据 OP 的要求)。
  • 将创建的捕获组的值保存到名为text1和的字段text2中。

输出如下:

    field                           text1                       text2
0   marketable_email_status_m10     marketable_email_status     m10
1   email_availability_status_m11   email_availability_status   m11
2   ending_ar_60_to_89_dpd_m11      ending_ar_60_to_89_dpd      m11
3   email_availability_status_m1    email_availability_status   m1

推荐阅读