gpt4 book ai didi

python - 根据字符串列表修改数据框行

转载 作者:行者123 更新时间:2023-12-02 19:22:09 25 4
gpt4 key购买 nike

背景

我有一个数据集,其中包含以下内容:

product_title   price
Women's Pant 20.00
Men's Shirt 30.00
Women's Dress 40.00
Blue 4" Shorts 30.00
Blue Shorts 35.00
Green 2" Shorts 30.00

我创建了一个名为“性别”的新列,其中包含基于product_title 中指定字符串的“女性”、“男性”或“男女皆宜”值。

输出如下所示:

product_title   price   gender
Women's Pant 20.00 women
Men's Shirt 30.00 men
Women's Dress 40.00 women
Blue 4" Shorts 30.00 women
Blue Shorts 35.00 unisex
Green 2" Shorts 30.00 women

方法

我尝试使用 if/else 语句创建一个新列:

df['gender'] = ['women' if 'women' in word or 'Blue 4"' in word or 'Green 2"' in word
else "men" if "men" in word
else "unisex"
for word in df.product_title.str.lower()]

尽管这种方法有效,但当我有很多条件来标记女性、男性和男女皆宜时,它就会变得很长。有没有更干净的方法来做到这一点?有没有办法可以传递字符串列表,而不是使用长链或条件?

我非常感谢帮助,因为我是 python 和 pandas 库的新手。

最佳答案

IIUC,

import numpy as np
s = df['product title'].str.lower()
df['gender'] = np.select([s.str.contains('men'),
s.str.contains('women|blue 4 shorts|green 2 shorts')],
['men', 'women'],
default='unisex')

关于python - 根据字符串列表修改数据框行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62901885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com