У меня есть фрейм данных, как показано ниже
Вход
df.head(6)
Lat Lon
13.34563 -9.45
5.897 10.345
NaN NaN
-8.7865 8.2
4.782833 9.9098
Я хочу создать новый столбец с именем param, который содержит как Lat
, так и Lon
до трех десятичные разряды без округления, и если присутствуют только один или два десятичных знака, а лишний ноль делает его тремя десятичными
Ожидаемый результат
Param
13.345:-9.450
5.897:10.345
NaN
-8.786:8.200
4.782:9.909
Как это можно сделать в python?
Мой код
import math
def truncate(f,n):
return math.floor(f*10**n)
try :
df['Lat'] = (df['Lat'].apply(lambda x : truncate(x,3)))/1000
except:
df['Lat']=np.nan
try :
df['Lon'] = (df['Lon'].apply(lambda x : truncate(x,3)))/1000
except:
df['Lon']=np.nan
df['param'] = df['Lat'].astype(str) + : + shipment['Lon'].astype(str)
Но это не работает. Любая помощь приветствуется?