首页 > 解决方案 > Pandas - 用名称 ID 替换数字字符串

问题描述

我的数据框中有一列包含所有字符串,其中一些是 TAG(机器/计算机),一些其他项目,还有一些是 ID。我希望将所有 ID 字符串更改为“ID”而不是数字字符串。

type(df.columnOne[1])
str 

这就是我的 df 列的样子:

df
  columnOne
0 TAG
1 1115268
2 13452
3 system
4 TAG
5 355511
6 95221543
7 5124
8 111333544
9 TAG
10 local
11 434312

期望的输出:

df
  columnOne
0 TAG
1 ID
2 ID
3 system
4 TAG
5 ID
6 ID
7 ID
8 ID
9 TAG
10 Local
11 ID

我通常会做一些事情,如果它不等于 TAG 或系统或本地然后 ID。但它总是随着名称而变化。

标签: pythonpandas

解决方案


如果我理解正确,您可以使用str.isnumeric

df.loc[df.columnOne.str.isnumeric(),'columnOne'] = 'ID'

>>> df
   columnOne
0        TAG
1         ID
2         ID
3     system
4        TAG
5         ID
6         ID
7         ID
8         ID
9        TAG
10     local
11        ID

推荐阅读