如何删除数据帧中最后一次出现字符后的所有内容?

2024-09-30 01:32:54 发布

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

我有一个数据帧DF,看起来像这样(这是一个示例):

    EQ1                    EQ2                       EQ3
0   Apple.fruit            Oranage.eatable.fruit     NaN
1   Pear.eatable.fruit     Banana.fruit              NaN
2   Orange.fruit           Tomato.eatable            Potato.eatable.vegetable
3   Kiwi.eatable           Pear.fruit                Cabbage.vegetable
<And so on.. It is a large Dataframe>

我想删除DF的每个元素中最后一次出现点.之后的所有内容,并将其保存在不同的名称下,例如df_temp
期望输出:

^{pr2}$

这就是我所尝试的: df_temp=".".join(DF.split(".")[:-1])
不幸的是,这似乎只适用于字符串,而不适用于数据帧。我需要稍微调整一下这条线来达到我想要的效果吗?有人请帮忙!在


Tags: 数据示例appledfnantemppearfruit
2条回答

你可以:

df_temp = df.apply(lambda x: x.str.split('.').str[:-1].str.join('.'))

输出:

^{pr2}$

参见string method docs

你可以用提取物。在

df_temp = df.apply(lambda x: x.str.extract(r'.*\.([^\.]*)', expand=False))

df_new = df.apply(lambda x: x.str.extract(r'(.*)\.[^\.]*', expand=False))

df_temp看起来像:

^{pr2}$

df_new看起来像:

            EQ1              EQ2             EQ3
0         Apple  Oranage.eatable             NaN
1  Pear.eatable           Banana             NaN
2        Orange           Tomato  Potato.eatable
3          Kiwi             Pear         Cabbage

相关问题 更多 >

    热门问题