150,000 이런식으로 나오게 하고싶은데. 찾아봐도 잘 안나온다, 되게 간단한 질문이라 찾기도 쉬울줄 알았는데 아니다.
pd.set_option('display.float_format', '{:,.2f}'.format) float64는 그냥 소수점 둘째 짜리까지 찍는 명령어를 배웠는데 int64는 모르겠다
정답 : apply lambda를 이용하는 방법
float형식은 display option으로 설정해줄수가 있었어서 그런 방법이 있을줄알았는데 진짜 구글에 한글도 쳐보고 영어로도
'pandas int separator', 'pandas thousand comma' 별에별거 다쳐봤는데 안나와서 그냥 apply lambda방식을 사용하기로함.
그리고 이게 좋은게 내가 원하는 열만 설정할수있는거라 또 좋다. 데이터 열이 많아지면 열마다 형식을 다르게 설정하고 싶을때가 있기때문이다.
단점은.. separator 콤마를 찍는순간 object가 되어버린다.
정말 방법이없나? 판다스가 이렇게 후질리가 없는데 int64이면서 소숫점이 찍히게 안되냐고
# add thousand separator for integers and 2 decimal places for floats
df['count'] = df['count'].apply(lambda x: "{:,}".format(int(x)) if x == int(x) else "{:.2f}%".format(100*x))
int가 아닐때는 소수둘째자리 3.73% 이런식으로 나오게 하는거같다.
https://www.codegrepper.com/code-examples/python/pandas+add+thousands+separator
뭔가 else문을 쓰기싫을때는
df['column'] = df['column'].apply(lambda x: "{:,}".format(int(x)))
이런식으로만 써도된다
'파이썬 > 궁금한것' 카테고리의 다른 글
해결) plt.rcParams['lines.color'] = 'red' 안되는 이유 (0) | 2022.07.10 |
---|---|
궁금) mpl(matplotlib)과 plt(matplotlib.pyplot)의 차이점? (0) | 2022.07.09 |
해결) 왜 sns.pairplot은 figure(figsize=(10,6)) 해도 안커질까? (0) | 2022.06.30 |
??궁금한것정리 (0) | 2022.06.21 |
??Pandas DataFrame Indexing, Slicing 같이 쓰는법 (0) | 2022.06.17 |