#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