Pandas中的侏儒别名

2024-10-16 22:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下建议:

# -- create a dataframe 
list_columns = ['weight', 'animal', 'age']
list_data = [
    [14, 'One Zebra co1 animal', 10],
    [4, '2 cats co2 domestic animal', 15],
    [100, '3 cats co1 domestic animal', 6],
    [400, 'horse co2 animal', 3]
    ]
df_animals = pd.DataFrame(columns=list_columns, data=list_data)

我想创建另一列,该列包含字符串co后的前3个字母

在excel中,它将类似于MID(F8;FIND("co";F8;3);3),并返回co1 co 2 co1 co2 我几乎可以肯定这可以用熊猫做到,但我还没有找到一种方法来做到这一点

如果起点是固定的,我会做df_animals['Test'] = df_animals['animal'].str[:2]

但在我的情况下是可变的。有人能告诉我实现这一目标的正确途径吗


Tags: columnsdataframedfdatacreate建议listco2
1条回答
网友
1楼 · 发布于 2024-10-16 22:34:27

IIUC,使用extract

df_animals['new'] = df_animals['animal'].str.extract('(co\w{,3})')
print(df_animals)

输出

   weight                      animal  age  new
0      14        One Zebra co1 animal   10  co1
1       4  2 cats co2 domestic animal   15  co2
2     100  3 cats co1 domestic animal    6  co1
3     400            horse co2 animal    3  co2

其思想是捕获前3个单词字符(\w{,3}),如果它们位于co之后

相关问题 更多 >