[英]Conditional If Statement: If value contains string then set another column equal to string
[英]If value contains string, then set another column value
我在Pandas中有一個數據框,其中有一列稱為“廣告系列”,其值如下所示:
“英國樣品汽車租賃汽車匹配競賽”
我需要能夠提取出包含“ Car Rental”一詞的字符串,並將另一個“ Product”列設置為“ CAR”。 連字符並不總是將單詞Car分開,因此以這種方式查找字符串是不可能的。
如何在Pandas / Python中實現呢?
熊貓作為您可以使用的一些可愛的字符串函數
例如,像這樣:
df['vehicle'] = df.Campaign.str.extract('(Car).Rental').str.upper()
這會將列載體設置為包含在extract function
的正則表達式括號內的內容。
同樣str.upper
使其大寫
如果要為車輛分配原始字符串中沒有的內容,則必須采取一些步驟,但這次我們仍然使用字符串函數str.contains
。
is_motorcycle = df.Campaign.str.contains('Motorcycle')
df['vehicle'] = pd.Series(["MC"] * len(df)) * is_motorcycle
第二行在這里創建了一系列“ MC”字符串,然后在我們發現是摩托車的條目上將其屏蔽。
如果要合並多個,建議您使用map函數:
vehicle_list = df.Campaign.str.extract('(Car).Rental|(Motorcycle)|(Hotel)|(.*)')
vehicle = vehicle_list.apply(lambda x: x[x.last_valid_index()], axis=1)
df['vehicle'] = vehicle.map({'Car':'Car campaign', 'Hotel':'Hotel campaign'})
首先,將數據提取到每行選項列表中。 案件按| 最后一個只是下面的Series.apply function
所需的Series.apply function
。 Series.map function
非常簡單,如果捕獲的數據是“汽車”,我們設置為“汽車活動”,而“酒店”則設置為“酒店活動”等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.