我的 pandas DataFrame 中有一列包含国家/地区名称。我想使用 if-else 条件在列上应用不同的过滤器,并且必须使用这些条件在该 DataFrame 上添加一个新列。
当前数据框:-
Company Country
BV Denmark
BV Sweden
DC Norway
BV Germany
BV France
DC Croatia
BV Italy
DC Germany
BV Austria
BV Spain
我试过这个,但在这个过程中,我必须一次又一次地定义国家。
bookings_d2.loc[(bookings_d2.Country== ‘丹麦’) | (bookings_d2.Country== ‘挪威’), ‘国家’] = bookings_d2.Country
在 RI 目前正在使用这样的 if else 条件,我想在 python 中实现同样的事情。
R 代码示例 1:ifelse(bookings_d2\(COUNTRY_NAME %in% c('丹麦','德国','挪威','瑞典','法国','意大利','西班牙','德国','奥地利' ,'荷兰','克罗地亚','比利时'), as.character(bookings_d2\)COUNTRY_NAME),‘其他’) R 代码示例 2:ifelse(bookings_d2\(country %in% c('Germany'), ifelse(bookings_d2\)BOOKING_BRAND %in% c(‘BV’),‘Germany_BV’,‘Germany_DC’),bookings_d2$country)
预期数据框:-
Company Country
BV Denmark
BV Sweden
DC Norway
BV Germany_BV
BV France
DC Croatia
BV Italy
DC Germany_DC
BV Others
BV Others
原文由 Arvind Pant 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用:
示例1:使用——-
loc
Series.isin
与numpy.where
~
选择:
例如 2:使用
numpy.select
或嵌套np.where
:选择: