반응형
시리즈 ㅡ 데이터프레임의 하위 자료형. 한 개의 열. 딕셔너리의 key 값이 index가 되고, value값이 값이 된다.
데이터프레임 ㅡ 여러 개의 시리즈가 모여서 데이터 프레임을 형성함.
import pandas as pd
# data = {
# "메뉴":['아메리카노','카페라떼','카페모카', '바닐라라떼', '녹차', '초코라떼', '바닐라콜드브루'],
# "가격":[4100, 4600, 4600, 5100, 4100, 5000, 5100],
# "할인율":[0.5, 0.1, 0.2, 0.3, 0, 0, 0],
# "칼로리":[10, 180, 420, 320, 20, 500, 400],
# }
# data = pd.DataFrame(data)
# data.to_csv('data.csv', index=False)
df = pd.read_csv('data.csv')
print(df.head())
# print(df.tail(3))
# 시리즈 만들기 (문자열)
menu = pd.Series(['아아','아라','바콜'])
print(menu)
price = pd.Series([2000,3000,4000])
print(price)
#시리즈를 엮어서 데이터프레임 만들기
df = pd.DataFrame({
"menu": menu,
"price": price
})
print(df)
print(df['menu'])
# 데이터 프레임 만들기 pd.DataFrame({"컬럼명":데이터})
data = {
"메뉴":['아메리카노','카페라떼','카페모카'],
"가격":[4100,4600,4600],
"할인율":[0.5, 0.1, 0.2],
"칼로리":[10, 180, 420],
}
cafe = pd.DataFrame(data)
print(cafe)
print(cafe['가격']) #Series로 선택한 코드
print(cafe[['가격']]) #데이터프레임으로 선택한 코드
print(type(df))
# print(type(df['가격'])) #에러남
print(type(cafe['가격']))
판다스 공부하기
import pandas as pd
#############################################
# EDA
# 데이터 불러오기
df = pd.read_csv('data.csv')
# 데이터 프레임 크기 (행,컬럼)
print(df.shape) # shape: 괄호 없음!
print(df.info())#null,type 확인
print(df.describe()) #기초통계
# 디폴트로 수치형은 기초통계 볼수있음
print(df.describe( include='O')) #기초통계
# 범주형 데이터 기초통계 보려면 이렇게 하면 된다.
print(df.corr(numeric_only=True))
# 상관관계 구할때 numeric_only= False 가 디폴트가 되어버림. 그러면 에러남. 그래서 True 넣어주니깐 결과가 에러없이 나왔다.
# 중복 값이 있는 데이터 생성
car = {
"car":['Sedan','SUV','Sedan','SUV','SUV','SUV','Sedan','Sedan','Sedan','Sedan','Sedan'],
"size":['S','M','S','S','M','M','L','S','S', 'M','S']
}
car = pd.DataFrame(car)
print(car.head(3))
# nunique # 항목별 종류수
print(car.nunique())
# unique # Series의 속성이다. #그래서 컬럼을 지정해줘야함
print(car['car'].unique())
print(car['size'].unique())
#항목별 개수 (car)
print(car['car'].value_counts())
print(car['size'].value_counts())
# 데이터 프레임 만들기 (할인율과 칼로리 -> 문자열)
data = {
"메뉴":['아메리카노', '카페라떼', '카페모카', '바닐라콜드브루'],
"가격":[4100, 4600, 4600, 5100],
"할인율":['0.5', '0.1', '0.2', '0.3'],
"칼로리":[10,180,420,320],
}
df = pd.DataFrame(data)
print(df.info())
df['할인율'] = df['할인율'].astype('float')
print(df.info())
# DataFrame에 새로운 컬럼 추가
df['new'] = 0
print(df)
df['할인가'] = df['가격'] * (1-df['할인율'])
print(df)
#결측값으로 추가하기#이거 하려면 넘파이 필요함
import numpy as np
df['원두'] = np.nan
print(df)
# 데이터 삭제
# 행방향, 열방향 삭제 가능
# 행방향: axis=0, 열방향: axis=1
# 열 삭제
df = df.drop('new',axis=1)
print(df)
# 행 삭제
df = df.drop(1,axis=0)
print(df)
# 인덱스는 자동으로 땡겨지지 않고 그대로 1 이 없는 채로 남아 있네
df.to_csv('data2.csv',index=False)
#변수명에다가 써야함!
#pd.read_csv
#df.to_csv
new_df = pd.read_csv('data2.csv')
print(new_df.head())
판다스 퀴즈
import pandas as pd
# 주어진 데이터
data = {
"메뉴":['아메리카노', '카페라떼', '카페모카', '바닐라콜드브루'],
"가격":[4100, 4600, 4600, 5100],
"할인율":['0.5', '0.1', '0.2', '0.3'],
"칼로리":[10,180,420,320],
}
df = pd.DataFrame(data)
print(df.head())
# 이벤트가 컬럼 만들기
# 원 가격의 50% 할인을 적용한 이벤트 가격
df['이벤트가'] = df['가격'] * 0.5
print(df.head())
# df['할인가'] = df['가격'] * df['할인율']
# 그냥 이렇게 하니까 컬럼갯수가 엄청 늘어나버렸음
# 왜냐면 할인율이 스트링으로 되어 있기 때문임
df['할인율'] = df['할인율'].astype(float)
df['할인가'] = df['가격'] * (1-df['할인율'])
print(df.head())
df = df.drop('칼로리',axis=1)
print(df.head())
오늘의 꿀팁: 생각한 대로 연산이 이루어지지 않으면 string, int 등의 타입을 확인 해보자.
반응형
'IT,SW,Data,Cloud,코딩 > Python' 카테고리의 다른 글
2023년6월6일 EDA 공부 (0) | 2023.06.06 |
---|---|
2023년6월6일 머신러닝 요약 (0) | 2023.06.06 |
2023년6월6일 판다스공부 (0) | 2023.06.06 |
2023년6월5일 판다스공부 (0) | 2023.06.06 |
2023년06월03일 파이썬공부 (0) | 2023.06.03 |
2023년6월2일 파이썬공부 - 퇴근후딴짓 님의 유투브 4. 작업형2 예시문제 무작정 따라해보기 - 보면서 따라 쳐 보는 포스팅 (0) | 2023.06.03 |
2023년6월2일 파이썬공부 - 퇴근후딴짓 님의 유투브 3. 작업형1 예시문제 무작정 따라해보기 - 보면서 따라 쳐 보는 포스팅 (0) | 2023.06.02 |
2023년6월2일 파이썬공부 - 데이터사이언스스쿨 3장 넘파이 배열 프로그래밍 3.2 배열의 생성과 변형 :: 코드 따라 쳐보기 (0) | 2023.06.02 |
댓글