2017-08-25 58 views
0

我有一個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

你能澄清什麼是字符串,什麼是得到期望的結果在一個新列確切的產出預期? – Vaishali

+0

我已經編輯了這個問題,以更具體地說明我在輸出中想要什麼。謝謝。 – Yuvaraj

回答

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... 
相關問題