Я пытаюсь создать pd.DataFrame
, но у меня возникли проблемы с правилом ввода данных. У меня есть два массива numpy
, которые являются типами float
.Pandas dataframe - проблема с типом данных
Они были созданы из списка координат (х & у), как показано здесь:
# Take coordinates from list and convert to a numpy array
x_vector = np.asarray(x_list, dtype=float)
y_vector = np.asarray(y_list, dtype=float)
Для справки Вот пример того, что x_vector
выглядит следующим образом:
[-2248925.48185815 -2248925.48185815 -2248080.13621823 -2262432.04991849
-2250570.32692157 -2237312.76315587 -2237312.76315587 -2245650.16260083
-2245650.16260083 -2249323.93572129 -2247050.83128422 -2253151.83634956]
Я рад при форматировании здесь возникает проблема, когда я пытаюсь добавить x_vector
и y_vector
в рамку данных pandas.
Моя логика такова, что у меня есть 201 записей LAT/Лон так мой index
равно что, то я добавляю columns
, соответствующий моим данным, в конце концов я поставил dtype
, чтобы соответствовать мои координаты (с плавающей точкой).
Вот мой код:
df = pd.DataFrame(index=range(1, 202, 1), columns=['lat', 'lon', 'ws_daily_max'], dtype=float)
df['lat'] = y_vector
df['lon'] = x_vector
Однако при печати df
к консоли, я получаю эти значения, где после запятой значительно сдвинуты. Что пошло не так, почему изменились значения lat/lon? Я ожидал, что они будут такими же, как значения поплавка выше, т. Е. (-2248925.48185815
)?
index lat lon ws_daily_max 1 1.895464e+06 -2.248925e+06 NaN 2 1.895464e+06 -2.248925e+06 NaN
Я действительно запутался, что произошло. Сообщение об ошибке не напечатано, но это не результат, которого я ожидал. Любая ясность в отношении того, почему и как исправить это, будет весьма признательна.
Помогите мне, StackExchange. Ты моя единственная надежда.
Хороший ответ. Обратите внимание, что принятый ответ на [этот вопрос] (http://stackoverflow.com/questions/21137150/format-suppress-scientific-notation-from-python-pandas-aggregation-results) показывает, как это сделать. –
@AmiTavory интересно, хотя я согласен с принятым ответом на эту тему, преобразование в строку для эстетических целей - не лучшая практика. – Nikolai
@Nikolai Я считаю, что человек, отвечающий туда, полностью согласился с вами. Обратите внимание на первую часть ответа, хотя - 'pd.set_option ('display.float_format', lambda x: '% .3f'% x)' - это просто устанавливает параметр отображения. –