提取包含在分隔符之间的文本,并将其作为列表存储在单独的列中

2024-04-25 18:56:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Panda数据框,其中有一个文本列,格式如下。在##之间有一些值/文本。我想找到在##之间存在的文本,并将它们作为列表提取到单独的列中。你知道吗

##fare_curr.currency####based_fare_90d.price##

htt://www.abcd.lol/abcd-Search?from:##based_best_flight_fare_90d.air##,to:##mbased_90d.water##,departure:##mbased_90d.date_1##TANYT&pas=ch:0Y&mode=search

将上述两个字符串视为同一列的两行。我想得到一个新列,第一行是list [fare_curr.currency, based_fare_90d.price],第二行是[based_best_flight_fare_90d.air, mbased_90d.water, based_90d.date_1]。你知道吗


Tags: 数据文本dateairpandapricecurrencybased
1条回答
网友
1楼 · 发布于 2024-04-25 18:56:09

考虑到这个df

df = pd.DataFrame({'data':
['##fare_curr.currency####based_fare_90d.price##',
'htt://www.abcd.lol/abcd-Search?\ from:##based_best_flight_fare_90d.air##,to:##mbased_90d.water##,departure:#
#mbased_90d.date_1##TANYT&pas=ch:0Y&mode=search']})

您可以在新列中使用

df['new'] = pd.Series(df.data.str.extractall('##(.*?)##').unstack().values.tolist())

你得到了吗

    data                                            new
0   ##fare_curr.currency####based_fare_90d.price##  [fare_curr.currency, based_fare_90d.price, None]
1   htt://www.abcd.lol/abcd-Search?from:##based_be...   [based_best_flight_fare_90d.air, mbased_90d.wa...

相关问题 更多 >