gpt4 book ai didi

python - 在 Pandas Python 中基于列文本创建列

转载 作者:行者123 更新时间:2023-12-02 13:16:55 25 4
gpt4 key购买 nike

我有一个数据框(系列)'df',如下所示:

Name
A1001
A1002
B1001
C1001
A1003
B1002
B1003
C1002
D1001
D1002

我想创建一个名为 Company 的新列,如果文本以 'A''Bravo' 开头,则该列应为 'Alpha'如果文本以 'B' 开头,如果文本以其他内容开头,则 'Others' 开头。

我尝试过:

df['Company'] = 'Alpha' if df.Name.str.startswith('A') else 'Other'

但它给了我一个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

预期输出:

Name     Company
A1001 Alpha
A1002 Alpha
B1001 Bravo
C1001 Other
A1003 Alpha
B1002 Bravo
B1003 Bravo
C1002 Other
D1001 Other
D1002 Other

如何做到这一点?

最佳答案

使用numpy.selectSeries.str.startswith :

df['Company'] = np.select([df.Name.str.startswith('A'), 
df.Name.str.startswith('B')],
['Alpha', 'Bravo'],
default='Other')
print (df)
Name Company
0 A1001 Alpha
1 A1002 Alpha
2 B1001 Bravo
3 C1001 Other
4 A1003 Alpha
5 B1002 Bravo
6 B1003 Bravo
7 C1002 Other
8 D1001 Other
9 D1002 Other

关于python - 在 Pandas Python 中基于列文本创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59694261/

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