pandas groupby output convert to DataFrame
2021. 10. 2. 11:21ㆍ코딩/Python
반응형
안녕하세요 코봉이입니다!
python 에서 groupby 함수를 써서 원하는 결과를 얻은 다음 data를 저장하고, 다시 불러왔을 때 당황하셨던 경험이 있으신가요?
import pandas as pd
path = 'C:/Users/dataset/'
data = pd.read_csv(path + 'data4.csv')
print(data)
name age job hobby city
0 brian 25 farmer baseball tokyo
1 baker 20 teacher basketball seoul
2 henna 18 soldier soccer sanfransisco
3 harry 19 driver ski roma
4 tom 24 painter pingpong paris
5 bob 23 athletic billiard berlin
6 amily 20 designer coding tokyo
7 json 30 programmer sing seoul
8 mago 21 engineer soccer toronto
9 tim 40 student baseball seoul
10 ostin 20 driver ski toronto
11 beck 25 teacher baseball paris
12 jack 35 farmer soccer berlin
13 dustin 43 engineer coding seoul
14 jolly 58 president baseball toronto
데이터가 이렇게 있고, 직업별로 취미가 얼마나 다양한지를 확인하려고 groupby 를 이용해보겠습니다.
group = data.groupby(['job', 'hobby'])['name'].count()
print(group)
job hobby
athletic billiard 1
designer coding 1
driver ski 2
engineer coding 1
soccer 1
farmer baseball 1
soccer 1
painter pingpong 1
president baseball 1
programmer sing 1
soldier soccer 1
student baseball 1
teacher baseball 1
basketball 1
Name: name, dtype: int64
오 그래, 직업별로 취미도 다양하게 있고, driver는 두 명이 ski가 취미구나!
원하는 결과를 얻어냈으니, 저장하고 나중에 써먹어야지.
group.to_csv(path + 'groupby_output.csv', index = False)
print(pd.read_csv(path + 'groupby_output.csv'))
name
0 1
1 1
2 2
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 1
13 1
헉!! 이게 뭐야 !!
데이터를 저장하고 불러왔는데, grouping 요소는 온데간데 없고 count 결과만 남아있네요.
이런 현상은 groupby할 때 group 요소들이 index로 들어가있어서 발생하기 때문에, output에 .reset_index() 만 붙여주시면 깔끔하게 해결됩니다^^
group = data.groupby(['job', 'hobby'])['name'].count().reset_index() ## reset_index() 추가 ##
group.to_csv(path + 'groupby_output.csv', index = False)
print(pd.read_csv(path + 'groupby_output.csv'))
job hobby name
0 athletic billiard 1
1 designer coding 1
2 driver ski 2
3 engineer coding 1
4 engineer soccer 1
5 farmer baseball 1
6 farmer soccer 1
7 painter pingpong 1
8 president baseball 1
9 programmer sing 1
10 soldier soccer 1
11 student baseball 1
12 teacher baseball 1
13 teacher basketball 1
오늘도 많은 도움 되었으면 좋겠네요!
화이팅입니다.
반응형
'코딩 > Python' 카테고리의 다른 글
python No module named 'Crypto' 해결 방법 안내 (0) | 2022.02.22 |
---|---|
Python Download All version (파이썬 다운로드 방법) (0) | 2022.02.02 |
groupby를 이용하여 여러 행을 하나의 행으로 요약 (multiple rows convert to single row) (0) | 2021.10.02 |
파이썬 두 가지 DataFrame의 다른 행 찾기 (find difference row between two dataframes by python) (0) | 2021.09.29 |
python으로 로또 1등 번호 생성하기 (동행복권) (0) | 2021.09.29 |