在Pandas我有一个包含时尚商品销售的订单数据库,需要计算某些特定商品的退货率。我想选择商品名称中包含“ christmas”,“ xmas”或“ gift”的所有行,但是当我尝试多个关键字时,出现错误。 有没有办法选择多个字符串名称? 非常感谢! 这是我的(摘要)数据帧:
inp = [{'sales':200, 'returns':100, 'item_name':'cool gift red'}, {'sales':150, 'returns':100, 'item_name':'giftset deluxe'},{'sales':1000, 'returns':100, 'item_name':'xmas sweater'}, {'sales':100, 'returns':100, 'item_name':'ugly christmas jumper BILLY'},
{'sales':100, 'returns':100, 'item_name':'blue sweater'},{'sales':100, 'returns':100, 'item_name':'ugly christmas jumper JOE'},
{'sales':100, 'returns':100, 'item_name':'orange cardigan'}
]
df = pd.DataFrame(inp)
gift=df[df.item_name.str.contains('xmas')]
gift```
答案 0 :(得分:0)
DataFrame中的[]
运算符是一种“神奇”的功能非常强大的工具。但是有时候程序会稍微冗长一些,从而使运行速度更快。
也就是说,[]
和.loc[]
可以采用多种条件:
礼物= df_q.loc [(condition1)| (条件2)| (条件3)]
您可以将|
,&
和~
用于条件的任意组合。
如果条件是相等/比较,请确保将条件括在括号中,如
.loc[(df.A == 1) & (df.B < 100)]
二进制运算符&
和|
优先于等号/不等号,因此不使用括号将等同于
(df.A == (1 & df.B)) < 100