我有一个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]
。
答案 0 :(得分:1)
鉴于此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...