[PYTHON] Python Pandas 집계 결과에서 과학 표기법 형식 지정 / 표시 안 함
PYTHONPython Pandas 집계 결과에서 과학 표기법 형식 지정 / 표시 안 함
매우 큰 숫자에 대한 과학적인 표기법을 만드는 팬더에서 groupby 연산의 출력 형식을 어떻게 수정할 수 있습니까? 파이썬에서 문자열 포맷을 수행하는 방법을 알고 있지만 여기에 적용 할 때 손실이 발생합니다.
df1.groupby('dept')['data1'].sum()
dept
value1 1.192433e+08
value2 1.293066e+08
value3 1.077142e+08
이것은 문자열로 변환하면 과학 표기법을 억제하지만 지금은 형식을 문자열로 바꾸고 십진수를 더하는 방법을 궁금해합니다.
sum_sales_dept.astype(str)
해결법
-
==============================
1.필자가 코멘트에 링크 된 대답은별로 도움이되지 않는다. 그렇게 자신의 문자열 변환기를 지정할 수 있습니다.
필자가 코멘트에 링크 된 대답은별로 도움이되지 않는다. 그렇게 자신의 문자열 변환기를 지정할 수 있습니다.
In [25]: pd.set_option('display.float_format', lambda x: '%.3f' % x) In [28]: Series(np.random.randn(3))*1000000000 Out[28]: 0 -757322420.605 1 -1436160588.997 2 -1235116117.064 dtype: float64
이 방법을 선호하는 방법인지는 확실하지 않지만 작동합니다.
순전히 미적인 목적을 위해 숫자를 문자열로 변환하는 것은 나쁜 생각처럼 보일 수 있지만 좋은 이유가있는 경우이 방법이 있습니다.
In [6]: Series(np.random.randn(3)).apply(lambda x: '%.3f' % x) Out[6]: 0 0.026 1 -0.482 2 -0.694 dtype: object
-
==============================
2.위의 방법과 거의 비슷한 다른 방법이 있습니다.
위의 방법과 거의 비슷한 다른 방법이 있습니다.
pd.options.display.float_format = '{:.2f}'.format Series(np.random.randn(3))
-
==============================
3.특정 데이터 프레임에 대한 과학 표기법을 억제하기 위해 라운드 함수를 사용할 수 있습니다.
특정 데이터 프레임에 대한 과학 표기법을 억제하기 위해 라운드 함수를 사용할 수 있습니다.
df1.round(4)
또는 다음을 통해 전 세계적으로 억제 할 수 있습니다.
pd.options.display.float_format = '{:.4f}'.format
-
==============================
4.csvfile csv.writer의 일부로 값을 사용하려면 목록을 만들기 전에 숫자를 형식 지정할 수 있습니다.
csvfile csv.writer의 일부로 값을 사용하려면 목록을 만들기 전에 숫자를 형식 지정할 수 있습니다.
df['label'].apply(lambda x: '%.17f' % x).values.tolist()
from https://stackoverflow.com/questions/21137150/format-suppress-scientific-notation-from-python-pandas-aggregation-results by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 메소드의 반환 유형이 파이썬에서 클래스 자체와 동일한 지 어떻게 지정합니까? (0) | 2018.10.02 |
---|---|
[PYTHON] Python 3.6의 변수 주석은 무엇입니까? (0) | 2018.10.02 |
[PYTHON] 두 날짜를 비교하는 방법? (0) | 2018.10.02 |
[PYTHON] 사전 목록을 Dataframe으로 변환 (0) | 2018.10.02 |
[PYTHON] 배열에 파이썬 csv 문자열 (0) | 2018.10.02 |