Pandas:在列中查找字符串,并将其替换为具有递增值的数字

2024-07-05 09:15:27 发布

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

我正在处理一个数据帧,其中有多个列,其中一个列中有多行,大约1000多行包含字符串值。请查看下表了解更多详细信息:

enter image description here

在上图中,我希望通过从第一列(主组)中选取值并增加一(01),将列组_Number中的字符串值更改为Number,并希望值如下所示:

enter image description here

还需要验证,如果字符串是重复的,那么它将替换为已更改的数字,而不是提供一个新的数字。例如,在上面的图像中,ANAYSIM正在复制,而不是给一个新的序列号,我希望已经给了重复字符串一个编号

已经检查了不同的链接,但他们关注的是用户提供的值:

Pandas DataFrame: replace all values in a column, based on condition
Change one value based on another value in pandas
Conditional Replace Pandas

任何有助于实现预期结果的帮助都将受到高度赞赏


Tags: 数据字符串in图像numberpandasvalueon
1条回答
网友
1楼 · 发布于 2024-07-05 09:15:27

我们可以用groupbycumcount

s=(df.groupby('MasterGroup').cumcount()+1).mul(10).astype(str)
t=pd.to_datetime(df.Group_number, errors='coerce')

然后我们分配

df.loc[t.isnull(), 'Group_number']=df.MasterGroup.astype(str)+s

相关问题 更多 >