pivot_table 결과 문의 - DataFrame/Series
데이터 분석 초보입니다.
아래의 코드를 사용시 결과의 타입이 변경되는 경우가 있어서 문의 드립니다.
이런경우는 코딩하면서 확인하는 방법만 있나요?
첫번째 그림의 결과를 dataframe 으로 변경하려면 어떻게 해야하나요?
답변 부탁드립니다. 감사합니다.
a1=df_last.pivot_table(index=['지역명'], columns=['연도'], values=['평당분양가격']).round()
# a1=df_last.pivot_table(index=['지역명','연도'], values=['평당분양가격']).round()
print(type(a1))
print(type(a1.loc['강원']))
a1.loc['강원']
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.series.Series'>

# a1=df_last.pivot_table(index=['지역명'], columns=['연도'], values=['평당분양가격']).round() a1=df_last.pivot_table(index=['지역명','연도'], values=['평당분양가격']).round() print(type(a1)) print(type(a1.loc['강원'])) a1.loc['강원']
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
답변 1
0
안녕하세요.
질문주신 내용에서 첫번째 코드는 컬럼이 하나입니다.
하나의 컬럼이 있는 상태에서 print(type(a1.loc['강원'])) 을 불러오게 되면 결과가 Series 형태로 변경되게 됩니다.
그런데 아래 데이터에서는 같은 코드를 실행했음에도 데이터프레임 형태로 나옵니다.
그 이유는 아래 데이터프레임은 멀티인덱스를 사용하기 때문입니다.
멀티인덱스의 값 하나를 가져왔기 때문에 나머지 인덱스값이 있어서 데이터프레임으로 변환이됩니다.
만약 위에 코드의 결과도 데이터프레임으로 반환하고자 하시면 [['강원']] 이렇게 2차원 리스트로 만들어주시면 됩니다.
print(type(a1.loc[['강원']]))
제가 최근 이 내용을 제 유튜브 채널에서 다뤘는데요.
다음의 영상을 참고해 보시면 도움이 될거 같아요. https://youtu.be/UQTaNegXQh0
패키지 설치 에러 ydata-profiling
0
120
2
자세한 설명 부탁드려요 ㅜ
0
176
2
seaborn 라이브러리 호출하였으나 그래프가 안 그려져요
0
287
2
value_counts와 count 차이
0
342
2
안녕하세요 데이터 최신과 관련해서 문의드립니다.
0
205
3
scatterplot질문
0
122
1
강의 화면이 안나옵니다
0
164
2
4분12초 2013년부터 데이터가 없으면 어떻게하나요?..
0
188
2
에러 메시지
1
303
2
그래프 색이 동일하게 나옵니다.
0
308
2
시각화 라이브러리 비교
0
382
2
주피터 노트북 설치
0
390
1
2. 상가 기술통계 아웃풋 자료에서 오류가 납니다
0
226
1
14. distplot g = sns.FacetGrid(df_last, row="지역명", height=1.7, aspect=4) g.map(sns.distplot, "평당분양가격", hist=False, rug=True); 오류
0
178
1
group by agg function failed 에러
0
687
2
빈도수가 1000개 이상인 데이터를 따로 담을 때 코드 질문 있습니다.
0
288
2
주피터 노트북 실행 했는데 앞에 *가 생기고 결과가 나오지 않아요
0
363
3
get_string함수에서 문자 'nan'
0
200
1
seaborn X축 시작 지점 조정 질의의 건
0
213
1
14강 distplot 질의
0
289
1
nbextension 설치 및 셋팅 후 적용이 안되는 이슈
0
478
1
corr = df.corr() 입력시 오류
1
373
1
keyword grid_b is not recognized
0
336
1
%ls data 매직커맨드 사용시 한글 깨짐
0
293
1





