csv, импортирующий столбец latitude в виде float, должен быть числовым

#python-3.x #floating-point #integer #geo #streamlit

#python-3.x #с плавающей запятой #целое число #гео #streamlit

Вопрос:

После импорта файла CSV я отображаю его с помощью streamlit.

Проблема в том, что тип столбца, импортированный для широты / длины, является float. Как мне преобразовать этот float в читаемый формат?

Я попробовал несколько трюков, используя pd.tu_numeric() или .apply (np.int64), но ничего не сработало.

 new_df['latitude'] = data['latitude'].dropna().apply(np.int64)
new_df['longitude'] = data['longitude'].dropna().apply(np.int64)


pd.to_numeric(data, errors='coerce')
st.map(data)
  

Спасибо за помощь новичку

Комментарии:

1. Lat / Lon обычно указываются как значения с плавающей точкой, а не целые числа. Как вы думаете, почему вам нужно изменить на integer?

2. Поскольку интерфейс streamlit сообщает мне «StreamlitAPIException: данные о широте и долготе должны быть числовыми»

3. Преобразование float (числа) в число не исправит это сообщение об ошибке. Я бы оставил значения с плавающей точкой как есть, но проверьте, есть ли у вас какие-либо недостающие значения в ваших данных. NaN также «не является числом»

Ответ №1:

У меня была такая же проблема при создании фрейма данных из базы данных Postgres. Я попытался преобразовать столбец dataframe в числовой с помощью функции «pd.to_numeric», и это не сработало.

Но на самом деле фрейм данных имеет значения NAN (null), поэтому мне нужно было удалить значения NAN из фрейма данных:

 dataframe = dataframe.dropna()
  

https://pandas.pydata.org/docs/reference/api/pandas .DataFrame.dropna.html

Ответ №2:

Попробуйте использовать приведенный ниже фрагмент

 new_df['latitude']=pd.to_numeric(new_df['latitude']) 
new_df['longitude']=pd.to_numeric(new_df['longitude])
  

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_numeric.html