일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SQL
- 백준 1331번
- 다이나믹 프로그래밍
- 백준 17451번
- 자바
- ubuntu
- 그래프
- 명품자바
- HUFS 모각코 캠프
- MySQL
- 다이나믹프로그래밍
- Python
- javascript
- 백준 1987
- java_programming
- react
- 백준 16918번
- 그리디
- 백준 2512번
- 백준 18310번
- 머신러닝과 딥러닝
- SWEA 15612번
- 백준
- 모각코
- 백준 3085번
- 백준 15787번
- AWS
- 알고리즘
- 백준 1253번
- 깃헙
Archives
- Today
- Total
차곡차곡
Pandas 본문
Pandas
자료들 간 빠른 연산 속도 및 데이터 분석을 가능
DB 테이블, 또는 엑셀 파일과 같은 테이블 형태의 데이터를 다룬다.
- Series : 1차원 데이터 + index
1. List로부터 생성 + index는 자동 생성
import pandas as pd
rawData = [3, 5, 10, 2]
data = pd.Series(rawData)
print(data)
print(data.get(2))
print(data[2])
>> 0 3
1 5
2 10
3 2
dtype: int64
10
10
2. List로부터 생성 + index 직접 부여
rawData = [3, 5, 10, 2]
data = pd.Series(rawData, index=["a", "b", "c", "d"])
print(data)
>> a 3
b 5
c 10
d 2
dtype: int64
3. Dictionary로부터 생성 (key는 index, value는 데이터로 들어감)
rawData = {"치킨스테이크":3, "비프스테이크":5, "삼겹살스테이크":10, "함박스테이크":2}
data = pd.Series(rawData)
print(data)
print(data.get(2))
print(data[2])
print(data.get("함박스테이크"))
print(data["비프스테이크"])
>> 치킨스테이크 3
비프스테이크 5
삼겹살스테이크 10
함박스테이크 2
dtype: int64
10
10
2
5
- Dataframe : Series들이 모인 2차원 데이터
1. List로부터 생성
aL = [1, 2, 3, 4]
bL = [5, 6, 7, 8]
cL = [4, 3, 2, 1]
scoreType = ["과제1", "과제2", "과제3", "기말"]
students = ["양용", "용석", "석양"]
abc = pd.DataFrame((aL, bL, cL), columns=scoreType, index=students)
print(abc)
>> 과제1 과제2 과제3 기말
양용 1 2 3 4
용석 5 6 7 8
석양 4 3 2 1
2. 여러 개의 Series로부터 생성
aS = pd.Series(aL, index=scoreType)
bS = pd.Series(bL, index=scoreType)
cS = pd.Series(cL, index=scoreType)
abc = pd.DataFrame((aS, bS, cS), index=students)
print(abc)
>> 과제1 과제2 과제3 기말
양용 1 2 3 4
용석 5 6 7 8
석양 4 3 2 1
3. Dictionary들의 list로부터 생성
rawData = {"3일" : [3, 5, 10, 2], "4일" : [10, 9, 0, 1], "5일" : [5, 7, 6, 3]}
data = pd.DataFrame(rawData)
print(data)
# index 부여
data.index = ["치킨", "비프", "삼겹살", "합박"]
print(data)
>> 3일 4일 5일
치킨 3 10 5
비프 5 9 7
삼겹살 10 0 6
합박 2 1 3
- DataFrame 접근
1. 열 선택
print(data["3일"])
print(data.get("3일"))
print(abc.과제2)
# data.3일 은 안 됨 : 파이썬에서 변수명은 숫자로 시작할 수 없음
>> 치킨 3
비프 5
삼겹살 10
합박 2
Name: 3일, dtype: int64
치킨 3
비프 5
삼겹살 10
합박 2
Name: 3일, dtype: int64
양용 2
용석 6
석양 3
Name: 과제2, dtype: int64
2. 행 선택
print(data[0:2])
print(data[0::2])
print(data["치킨":"삼겹살":2]) #끝 인덱스 포함
>> 3일 4일 5일
치킨 3 10 5
비프 5 9 7
3일 4일 5일
치킨 3 10 5
삼겹살 10 0 6
3일 4일 5일
치킨 3 10 5
삼겹살 10 0 6
3. 행/열 선택
# iloc : 숫자로 선택하기
print(data.iloc[::2, 1])
print(data.iloc[3, 2])
# loc : column명 & index로 선택하기 (끝 인덱스 포함)
print(data.loc[:"삼겹살", "4일"])
>> 치킨 10
삼겹살 0
Name: 4일, dtype: int64
3
치킨 10
비프 9
삼겹살 0
Name: 4일, dtype: int64
- DataFrame 활용
1. 데이터 필터링
print(data[data["5일"] > 4])
>> 3일 4일 5일
치킨 3 10 5
비프 5 9 7
삼겹살 10 0 6
2. 데이터 정렬
print(data.sort_values("5일"))
print(data.sort_values("5일", ascending=False))
>> 3일 4일 5일
합박 2 1 3
치킨 3 10 5
삼겹살 10 0 6
비프 5 9 7
3일 4일 5일
비프 5 9 7
삼겹살 10 0 6
치킨 3 10 5
합박 2 1 3
3. 데이터 기초통계랑
print(data.describe())
>> 3일 4일 5일
count 4.000000 4.000000 4.000000
mean 5.000000 5.000000 5.250000
std 3.559026 5.228129 1.707825
min 2.000000 0.000000 3.000000
25% 2.750000 0.750000 4.500000
50% 4.000000 5.000000 5.500000
75% 6.250000 9.250000 6.250000
max 10.000000 10.000000 7.000000
* 엑셀에 쓰기
data.to_excel("dosirak.xlsx") # data를 dosirak 파일에
* 엑셀에서 읽기
ex = pd.read_excel("20200520.xlsx", sheet_name="교과목명-담당교수명") # pandas로 엑셀 읽기
'2021 데이터 청년 캠퍼스 > 기초 파이썬' 카테고리의 다른 글
주소 목록이 있는 엑셀 파일에 위도 경도 추가하기 (0) | 2021.07.06 |
---|---|
[Python] Numpy (0) | 2021.07.04 |
Comments