首页 > 解决方案 > 如何检查数据框中是否有整数并在其前面添加单词

问题描述

我的数据框在此处输入图像描述

我的代码-

for x in df.ROAD_NAME_NUMBER:
    if int(x) == x:
        df.ROAD_NAME_NUMBER= 'Road '+ df.ROAD_NAME_NUMBER

我得到了错误-ValueError: invalid literal for int() with base 10: 'Avenue 5, Lane 23'

我预期的数据框应该是这样的 - 在此处输入图像描述

当在数据框中找到任何整数时,在其前面添加“Road”。否则忽略。


import pandas a pd
df = pd.DataFrame({'ROAD_NAME_NUMBER':['4','2','1','8','2','AVE 5,LANE 2']})

>>> print(df)
  ROAD_NAME_NUMBER
0                4
1                2
2                1
3                8
4                2
5     AVE 5,LANE 2

标签: pythonpandasstringdataframeinteger

解决方案


假设该ROAD_NAME_NUMBER列是文本,您可以尝试str.replace在此处使用:

df["ROAD_NAME_NUMBER"] = df["ROAD_NAME_NUMBER"].str.replace(r'^(\d+)$', r'Road \1')

推荐阅读