gpt4 book ai didi

python - 检查列的单元格是否以特定字符串开头 [Pandas]

转载 作者:太空宇宙 更新时间:2023-11-04 05:28:09 24 4
gpt4 key购买 nike

首先,感谢您花时间阅读本文。

我已将数据从 csv 导入到 Pandas 的表格中。我想要做的是创建一个新列并用不同的数字填充它,这将取决于另一列中的字符串。

所以如果第一列是这样的:

Column1
Horse1
Horse2
Chicken3
Chiken4
Chicken5
Cow6
Horse7
Cow8
Cow9

我想创建一个新列,所以它只考虑第一个动物的名称并给它一个数字:

Column1               Column2
Horse1 1
Horse2 1
Chicken3 2
Chiken4 2
Chicken5 2
Cow6 3
Horse7 1
Cow8 3
Cow9 3

目前,我尝试过的是(我也留下评论供您查看我以前尝试过但也没有用的东西):

def f(row):
#if StringMethods.startswith('Horse', na=False):
#if animals['Column1'].str.contains("Horse")==True:
#if animals[animals['Column1'].str.contains('Horse', na=False)]:
if (animals[animals['Horse'].isin(animals['Column1'])]):
val = 1
return val

animals['Column2'] = animals.apply(f, axis = 1)

我收到这个错误:

KeyError: ('Horse', u'occurred at index 0')

你怎么看?

提前致谢

最佳答案

试试这个:

In [34]: mapping = {
....: 'Horse': 1,
....: 'Chicken': 2,
....: 'Cow': 3,
....: 'Dog': 4,
....: }

In [40]: df['Column2'] = df.Column1.str.replace(r'\d+', '').map(mapping)

In [41]: df
Out[41]:
Column1 Column2
0 Horse1 1
1 Horse2 1
2 Chicken3 2
3 Chicken4 2
4 Chicken5 2
5 Cow6 3
6 Horse7 1
7 Cow8 3
8 Cow9 3

关于python - 检查列的单元格是否以特定字符串开头 [Pandas],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38021060/

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