识别列中的整数并替换为字符串

2024-04-24 03:46:30 发布

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

我不熟悉Python和熊猫。我有一个如下所示的数据框:

             ID                    NAME
0      0000001                    Apple
1      0000002                       35
2      0000003                    Grape
3      0000004                       22
4      0000005                   Banana
5      0000006                       12

我的目标是用“未知”替换名称列中的数字字段

到目前为止,我已经尝试了以下方法:

out['NAME'] = out.apply(lambda x: x['NAME'].replace(x['NAME'], 'Unknown'))

但它似乎无法替换它,并给了我一个keyrerror:('NAME','occurrentedatindex ID'))

最终,我希望得到如下结果:

             ID                    NAME
0      0000001                    Apple
1      0000002                   Unkown
2      0000003                    Grape
3      0000004                   Unkown
4      0000005                   Banana
5      0000006                   Unkown

Tags: 数据方法lambdaname名称idapple目标
3条回答

您可以使用^{}确定哪些行可以转换为数字:

>>> df.loc[~pd.to_numeric(df["NAME"], errors = "coerce").isnull(), "NAME"] = "unknown"
>>> df
   ID     NAME
0   1    Apple
1   2  unknown
2   3    Grape
3   4  unknown
4   5   Banana
5   6  unknown

使用errors = "coerce"时,无效解析将设置为NaN

out['NAME']=np.where(out.NAME.str.contains('\d'),'unknown',out.NAME)

使用^{}

>>> out.loc[out.NAME.str.isnumeric(), 'NAME'] = 'Unknown'
>>> out

        ID     NAME
0  0000001    Apple
1  0000002  Unknown
2  0000003    Grape
3  0000004  Unknown
4  0000005   Banana
5  0000006  Unknown

相关问题 更多 >