处理一列中的字符串并将值追加到DataFrame中的新行-Pandas

时间:2018-08-29 17:33:35

标签: string python-3.x pandas

我在Pandas数据框中具有以下格式的数据:

广告系列|支出|

L003-FL-巴拿马| 800 |

L015,L020 CA-兰乔| 600 |

我需要的是在“广告系列”列中以大写字母“ L”开头并以三位数结尾的每个值附加到新列中。更复杂的是,如果广告系列列中的字符串中有多种这种格式的值,那么我需要将每个值都列在其自己的新行中。

输出如下:

广告系列|支出|商店

L003-FL-巴拿马| 800 | L003

L015,L020 CA-兰乔| 600 | L015

L015,L020 CA-兰乔| 600 | L020

抱歉,如果这没有道理,请告诉我是否可以澄清。

1 个答案:

答案 0 :(得分:2)

您可以使用extractall然后合并到原始数据框

 df.reset_index().merge(df.Campaign.str.extractall('(\\bL\\d{3})').reset_index(),
           left_on='index',right_on  = 'level_0').drop(['index','level_0','match'],
           axis = 1).rename({0:'store'},axis = 1)

Out[65]: 
                 Campaign  Spend store
0         L003-FL-Panama     800  L003
1  L015, L020 CA- Rancho     600  L015
2  L015, L020 CA- Rancho     600  L020