Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 데이터분석
- 파이썬라이브러리
- JupyterNotebook
- jupiternotebook
- 데이터
- 한국산업인력공단
- 빅데이터
- 머신러닝
- 파이썬타자게임
- 파이썬기초
- 공공데이터
- ESG지원사업
- python
- 주피터노트북
- 소셜이노베이션
- 청년친화형
- 딥러닝
- 유클리드소프트
- ABC부트캠프
- pythonlibrary
- 파이썬
- 프로그래밍
- 디지털마케팅
- 고용노동부
- 웹크롤링
Archives
- Today
- Total
TECH_LOG
Python Library_Pandas7 [concat, 피봇테이블, 그룹분석 ] 본문
ABC부트캠프_2023.03.27
concat 연결 - 기준열을 사용하지 않고 단순히 데이터 연결 - 인덱스 값이 중복 될 수 있음 |
1. 열을 기준으로 연결(아래로)
s1 = pd.Series([0,1], index=['A','B'])
s2 = pd.Series([2,3,4], index = ['A','B','C'])
s1
>>>
A 0
B 1
s2
>>>
A 2
B 3
C 4
pd.concat([s1,s2])
>>>
A 0
B 1
A 2
B 3
C 4
2. 옆으로 연결, axis = 1
1) 데이터프레임 생성
df1 = pd.DataFrame(
np. arange(6).reshape(3,2),
index = ['a', 'b', 'c'],
columns = ['데이터1','데이터2'])
df1
>>>
데이터1 데이터2
a 0 1
b 2 3
c 4 5
df2 = pd.DataFrame(
5 + np.arange(4).reshape(2, 2),
index=['a', 'c'],
columns=['데이터3', '데이터4'])
df2
>>>
데이터3 데이터4
a 5 6
c 7 8
2) 열 기준으로 합하기 , axis = 1
pd.concat([df1,df2],axis=1)
>>>
데이터1 데이터2 데이터3 데이터4
a 0 1 5.0 6.0
b 2 3 NaN NaN
c 4 5 7.0 8.0
피봇테이블 데이터 열 중에서 두개의 열을 행인덱스, 열인덱스로 사용하여 데이터 구성 |
1) 데이터 생성
data = {
"도시": ["서울", "서울", "서울","부산", "부산", "부산", "인천", "인천"],
"연도": ["2015", "2010", "2005", "2015", "2010", "2005", "2015", "2010"],
"인구": [9904312, 9631482, 9762546, 3448737, 3393191, 3512547, 2890451, 263203],
"지역": ["수도권", "수도권", "수도권", "경상권", "경상권","경상권", "수도권", "수도권"]
}
columns = ["도시", "연도", "인구", "지역"]
df1 = pd.DataFrame(data, columns=columns)
df1
>>>
도시 연도 인구 지역
0 서울 2015 9904312 수도권
1 서울 2010 9631482 수도권
2 서울 2005 9762546 수도권
3 부산 2015 3448737 경상권
4 부산 2010 3393191 경상권
5 부산 2005 3512547 경상권
6 인천 2015 2890451 수도권
7 인천 2010 263203 수도권
2) 도시가 열, 연도가 행 으로 인덱스 구성 _ pivot(행인덱스 ,열인덱스, 데이터)
df1.pivot("도시","연도","인구")
>>>
연도 2005 2010 2015
도시
부산 3512547.0 3393191.0 3448737.0
서울 9762546.0 9631482.0 9904312.0
인천 NaN 263203.0 2890451.0
그룹분석 조건에 맞는 데이터가 하나 일때 그룹분석 키에 의해 결정되는 데이터가 여러개 있을 때 미리 지정한 연산으로 대표값 계산 1. 분석하고자 하는 시리즈나 데이터프레임에 groupby 메서드 호출해서 그룹화 2. 그룹 객체에 대해 그룹연산 수행 |
그룹연산 메서드 - size, count: 그룹 데이터의 갯수 - mean, median, min, max: 그룹 데이터의 평균, 중앙값, 최소, 최대 - sum, prod, std, var, quantile : 그룹 데이터의 합계, 곱, 표준편차, 분산, 사분위수 - first, last: 그룹 데이터 중 가장 첫번째 데이터와 가장 나중 데이터 |
1. key1의 값에 따른 data1의 평균 구하기
1) 데이터 생성
np.random.seed(0)
df2 = pd.DataFrame({
'key1': ['A','A','B','B','A'],
'key2': ['one','two','one','two','one'],
'data1': [1,2,3,4,5],
'data2': [10,20,30,40,50]
})
df2
>>>
key1 key2 data1 data2
0 A one 1 10
1 A two 2 20
2 B one 3 30
3 B two 4 40
4 A one 5 50
2) 그룹 데이터 생성
groups = df2.groupby(df2.key1) #그룹 데이터 생성
group
>>>
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x000002ABEA14F5B0>
3) 인덱스 저장
groups.groups # 인덱스 저장
>>>
{'A': [0, 1, 4], 'B': [2, 3]}
4) 그룹 데이터의 합계
groups.sum()
>>>
data1 data2
key1
A 8 80
B 7 70
5) 그룹 클래스 객체를 얻을 필요가 없을 때 연속적으로 호출
df2.data1.groupby(df2.key1).sum()
>>>
key1
A 8
B 7
6) 복합키(key1,key2)값에 따른 data1의 합계 구할때 리스트사용
df2.data1.groupby([df2.key1,df2.key2]).sum()
>>>
key1 key2
A one 6
two 2
B one 3
two 4
'Programming' 카테고리의 다른 글
[정규표현식, 워드클라우드] (0) | 2023.03.30 |
---|---|
[빅데이터의 이해, 웹 스크래핑] (1) | 2023.03.29 |
Python Library_Pandas6[ apply 행렬, 데이터프레임 인덱스 조작,데이터 합성] (0) | 2023.03.27 |
Python Library_Pandas5[ 데이터프레임의 데이터 조작, 정렬, 행/열 합계 ] (0) | 2023.03.27 |
Python Library_Pandas4 [ 데이터 입출력, loc, iloc ] (0) | 2023.03.23 |
Comments