티스토리 뷰
728x90
[python]Mysql의 데이터로 Data Frame 형성
패키지(터미널에서 설치) pip install sqlalchemy pip install pymysql 데이터 베이스 접속 from sqlalchemy import create_engine database_connection = create_engine('데이터 베이스 접속 url') 데이터 베이스 접속 url은 데이터
growingegg.tistory.com
데이터 프레임에서의 데이터 선택
열 선택
- 데이터 프레임['컬럼이름'] 또는 데이터 프레임. 컬럼 이름
- 데이터 프레임.컬럼 이름으로 접근할 때는 컬럼 이름이 반드시 문자열이어야 한다.
- 하나의 컬럼 이름을 이용해서 접근하면 Series로 리턴
행 선택
- loc[인덱스 이름]으로 접근
- iloc[정수형 위치 인덱스] 로 접근
- series로 리턴
셀 선택
- [컬럼 이름][인덱스 이름]의 형태로 접근
- loc[인덱스 이름, 컬럼 이름]
- iloc[행 위치 인덱스, 열 위치 인덱스]
다중 선택
- list를 이용해서 선택
- list를 이용해서 선택하면 DataFrame이 리턴
실습
import numpy as np
import pandas as pd
#item.csv 파일을 읽어서 DataFrame 만들기
item = pd.read_csv('C:/Users/USER/Downloads/data/data/item.csv')
print(item.head())
item.info()
#
item.index = item['code']
item.index = ['사과', '수박', '참외', '바나나', '레몬', '망고']
print(item)
#열 하나 선택
print(item['name'])
print(item.price)
#열 여러 개 선택
print(item['name' ])
print(item.price)
#행 하나 선택
print(item.iloc[0])
print(item.loc['사과'])
#결과
code manufacture name price
0 1 korea apple 1500
1 2 korea watermelon 15000
2 3 korea oriental melon 1000
3 4 philippines banana 500
4 5 korea lemon 1500
code manufacture name price
사과 1 korea apple 1500
수박 2 korea watermelon 15000
참외 3 korea oriental melon 1000
바나나 4 philippines banana 500
레몬 5 korea lemon 1500
망고 6 korea mango 700
사과 apple
수박 watermelon
참외 oriental melon
바나나 banana
레몬 lemon
망고 mango
Name: name, dtype: object
사과 1500
수박 15000
참외 1000
바나나 500
레몬 1500
망고 700
Name: price, dtype: int64
범위를 이용한 행 인덱싱
- [시작위치: 종료 위치:간격]을 이용하는 것이 가능
- 시작위치는 생략하면 0. 종류위치를 생략하면 마지막. 각격을 생략하면 1.
- 이름 인덱스에서는 마지막 위치가 포함된다.
실습
print(iloc[1:4])
print(item.loc["수박":"바나나"])
#결과
code manufacture name price
수박 2 korea watermelon 15000
참외 3 korea oriental melon 1000
바나나 4 philippines banana 500
code manufacture name price
수박 2 korea watermelon 15000
참외 3 korea oriental melon 1000
바나나 4 philippines banana 500
Boolean 인덱싱
- bool 타입의 Series를 대입하면 True인 행 만 선택
- Series 객체 비교연산자 값 이용하면 bool 타입의 series를 리턴
- &와 |를 이용한 결합도 가능
- isin([데이터 나열]): 데이터 안에 속하면 True 아니면 False를 리턴
실습
#price가 1000 ~ 1500이하인 데이터만 추출
print(item[item['price']<=1500])
#price가 1000 또는 500인 데이터
print(item[item['price'].isin([1000,500])])
#결과
code manufacture name price
사과 1 korea apple 1500
참외 3 korea oriental melon 1000
바나나 4 philippines banana 500
레몬 5 korea lemon 1500
망고 6 korea mango 700
code manufacture name price
참외 3 korea oriental melon 1000
바나나 4 philippines banana 500
내용 확인
- head와 tail: DataFrame의 데이터 중에서 앞이나 뒤에서 몇 개의 데이터를 확인하고자 할 때 사용
- shape: 행과 열의 개수를 tuple 형식으로 리턴
- info(): DataFrame의 기본정보(데이터 유형, 행 인덱스의 구성, 열 이름, 각 열의 자료형과 데이터 개수, 메모리 사용량)를 리턴
- dtypes: 각 열의 자료형 정보를 리턴
- count(): 데이터의 개수
- value_counts(): Series에서만 사용 가능. 고유한 값의 종류와 개수 정보
describe(): 기술 통계 정보를 출력. 옵션이 없으면 숫자 데이터의 평균, 표준 편차, 최댓값, 최소값, 중간값 등을 출력. include = 'all'을 옵션으로 추가하면 숫자 데이터가 아닌 열의 unique, top, freq를 출력
728x90
'python' 카테고리의 다른 글
[pandas]AttributeError: 'DataFrame' object has no attribute 'append' 오류 해결 방법 (0) | 2024.04.14 |
---|---|
[python, DataFrame] DataFrame (1) | 2024.02.15 |
[python, DataFrame]Mysql의 데이터로 Data Frame 형성 (0) | 2024.02.13 |
[python] selenium (0) | 2024.02.13 |
[python] 데이터 수집 (1) | 2024.02.13 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 인프런
- 인프런강의
- 인프런강의후기
- 위니브엠베서더
- Python
- PANDAS
- 생성형 AI
- 웹
- 제주코딩베이스캠프
- 웹프로그래밍
- 알고리즘이론
- 프로그래머스
- it도서큐레이션
- 전자회로
- 파이썬
- 더오름
- 웹개발
- 코딩테스트
- SSAFYcial
- ssafy기자단
- 오블완
- 백준
- 백준알고리즘
- 위니브
- numpy
- 알고리즘
- 티스토리챌린지
- SSAFY
- dataframe
- django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
250x250