Кажется, нужно преобразовать столбец с плавающей точкой GDP
в string
s:
cities['name-gdp'] = cities['name'].str.cat(cities['GDP'].astype(str), sep =': ')
Но если некоторые NaN
s и нужно вывести как NaN
s:
cities = pd.DataFrame({'name':['q','w','e'], 'GDP':[10.5,20.3, np.nan]})
print (cities)
GDP name
0 10.5 q
1 20.3 w
2 NaN e
gdp = cities['GDP'].mask(cities['GDP'].notnull(),cities['GDP'].astype(str))
print (gdp)
0 10.5
1 20.3
2 NaN
Name: GDP, dtype: object
print (gdp.apply(type))
0 <class 'str'>
1 <class 'str'>
2 <class 'float'>
Name: GDP, dtype: object
cities['name-gdp'] = cities['name'].astype(str).str.cat(gdp, sep =': ')
print (cities)
GDP name name-gdp
0 10.5 q q: 10.5
1 20.3 w w: 20.3
2 NaN e NaN
Первое решение возможно также использовать, но затем работать со строкой nan
и получить:
cities['name-gdp'] = cities['name'].str.cat(cities['GDP'].astype(str), sep =': ')
print (cities)
GDP name name-gdp
0 10.5 q q: 10.5
1 20.3 w w: 20.3
2 NaN e e: nan