基于正则表达式的数据帧条件

2024-10-06 12:34:10 发布

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

   TTT
1. 802010001-999-00000285-888-
2. 256788
3. 1940
4. NaN
5. NaN
6. 702010001-X-2YZ-00000285-888-

我想用除金额之外的所有其他值填充GGT列

所需的表如下所示

   TTT                                GGT
1. 802010001-999-00000285-888-        802010001-999-00000285-888-
2. 256788                             NaN
3. 1940                               NaN
4. NaN                                NaN
5. NaN                                NaN
6. 702010001-X-2YZ-00000285-888-      702010001-X-2YZ-00000285-888-

原始表有超过20万行


Tags: nan金额tttggt
2条回答

如果要删除只有数字的行,可以使用TTT列的string元素的match()方法。您可以使用这样的代码:

df["GGT"] = df["TTT"][df["TTT"].str.match(r'^(\d)+$')==False]

使用^{}

df['GGT'] = df['TTT'].mask(pd.to_numeric(df['TTT'], errors='coerce').notna())

或:

df['GGT'] = df['TTT'].mask(df["TTT"].astype(str).str.contains('^\d+$', na=True))
print (df)
                             TTT                            GGT
0    802010001-999-00000285-888-    802010001-999-00000285-888-
1                         256788                            NaN
2                           1940                            NaN
3                            NaN                            NaN
4  702010001-X-2YZ-00000285-888-  702010001-X-2YZ-00000285-888-

I

相关问题 更多 >