2016-09-02 2 views
-1

pd.DataFrame을 만들려고하는데 데이터 형식이 올바르지 않습니다. 배열이 float 인 두 개의 numpy 배열이 있습니다.팬더 데이터 프레임 - 데이터 형식 문제

여기에서 볼 수 있듯이 그들은 좌표 (X & Y)의 목록에서 만든 : 나는 기쁘게 생각

[-2248925.48185815 -2248925.48185815 -2248080.13621823 -2262432.04991849 
-2250570.32692157 -2237312.76315587 -2237312.76315587 -2245650.16260083 
-2245650.16260083 -2249323.93572129 -2247050.83128422 -2253151.83634956] 

: 여기에 참고로

# 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는 모습의 샘플입니다 여기서 서식을 지정하면 팬더 데이터 프레임에 x_vectory_vector을 추가하려고 할 때 문제가 발생합니다.

내 논리를 내 index 다음 내 데이터에 해당 columns를 추가하는 것이 동일 그래서 위도/Lons의 201 개 기록을 가지고있다, 마지막으로 내 좌표 (플로트)과 일치하도록 dtype을 설정합니다. 내가 콘솔에 df를 인쇄 할 때

df = pd.DataFrame(index=range(1, 202, 1), columns=['lat', 'lon', 'ws_daily_max'], dtype=float) 

df['lat'] = y_vector 
df['lon'] = x_vector 

그러나, 나는 소수점 자리가 크게 이동이 값을 얻을 :

여기 내 코드입니다. 무엇이 잘못되었는지, 위도/경도 값이 왜 바뀌 었습니까? 위의 플로트 값 (예 : (-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. 너는 내 유일한 희망이야.

답변

3

이것은 같은 번호의 과학 표기법입니다. 1.895464e + 06은 1.895464 * 10^6 = 1895465를 의미합니다. 따라서 소수 자리가 이동하지 않고 단지 표현으로 바뀌 었습니다. 숫자 모양을 변경하려면 http://pandas.pydata.org/pandas-docs/stable/options.html을보십시오. 이게 도움이 되길 바란다.

+0

좋은 답변입니다. [이 질문에 대한 답변] (http://stackoverflow.com/questions/21137150/format-suppress-scientific-notation-from-python-pandas-aggregation-results)에서 정확하게 그렇게하는 방법을 보여줍니다. –

+0

@AmiTavory 흥미 롭습니다. 그 스레드에 대한 허용 된 대답에 동의하지만, 미적 목적을 위해 문자열로 변환하는 것이 최선의 방법은 아닙니다. – Nikolai

+0

@ 니콜라이 (Nikolai) 나는 거기에 응답하는 사람이 당신과 완전히 동의했다고 생각합니다. 그래도 답변의 첫 부분을 주목하십시오 -'pd.set_option ('display.float_format', lambda x : '% .3f'% x)'- 표시 옵션 만 설정합니다. –