반응형
import pandas as pd
# 학습 전 실행: csv파일 (data.csv) 생성
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())
##########################################
# loc[인덱스명]
print(df.loc[1])
# df.loc['라떼'] # 이런식으로 인덱스명은 문자열이 될수도 있다.
# 인덱스명으로 프린트하면, 세로로 컬럼명이 나오고 해당 행이 세로로 나온다. 아래와 같은 형태임.
# 메뉴 카페라떼
# 가격 4600
# 할인율 0.1
# 칼로리 180
# iloc[인덱스번호]
print(df.iloc[1]) # 이렇게 하는 것도 위와 동일한 출력 결과가 나온다
# 컬럼 선택해서 슬라이싱
# loc[인덱스명, 컬럼명]
print(df.loc[:,'가격']) #Name: 가격
print(df.iloc[:,1]) #Name: 1 이라고 나오고 나머지는 동일함
# print(df.loc(['라떼':'모카','가격':'칼로리'])) #loc 는 마지막을 포함
print(df.iloc[1:3,1:]) #iloc는 맨 끝은 비포함
print(df.loc[1:2,'가격':'칼로리'])
print(df.iloc[1:3,1:])
print(df.loc[0])
print(df.loc[:,'가격'])
print(df.loc[1,'가격'])
# 저장되어 있는 컬럼의 순서에 따라 잘 적어줘야 한다.
print(df.loc[2,'가격':'메뉴'])
print(df.loc[2,'메뉴':'가격'])
# 이 두가지는 서로 다른 결과가 출력 된다.
# 연속된 컬럼이 아니면 list 형태로 슬라이싱
print(df.loc[2,['메뉴','칼로리']])
print(df.loc[1:2,['메뉴','가격']])
# iloc 는 인덱스의 번호로 찾는다
print(df.iloc[0])
print(df.iloc[:,1])
print(df.iloc[2,0:2]) # iloc는 뒤에꺼 비포함!
import numpy as np
df['원두'] = np.nan
print(df.head())
df.loc[0,'원두'] = '콜롬비아'
print(df.head())
# 데이터 행추가 방법 (1)
# df.loc['인덱스명'] = [컬럼개수 맞춰서 데이터입력]
df.loc['시즌'] = ['크리스마스라떼',6000,0,500,'한국']
print(df)
# 데이터 행추가 방법 (2)
# 인덱스명은 중복불가능.
#딕셔너리 형태로 넣으면 컬럼 갯수 안 맞춰도 들어감. 키값에 매칭시켜 데이터 넣기 때문.
df.loc[7] = {'메뉴':'에스프레소','가격':2000,'칼로리':10}
# 소팅
# 인덱스에 str, int 섞여 있으면 소팅 못함
df = df.drop('시즌',axis=0)
print(df)
# 원래도 인덱스 순으로 소팅되기 때문에 내림차순 해보기 # 기본으로 ascending = True 로 되어있음.
df = df.sort_index(ascending=False)
print(df)
#컬럼순 정렬
df = df.sort_values('가격')
print(df)
df = df.sort_values('가격',ascending=False)
print(df)
#기준 여러개로 정렬
df = df.sort_values(['가격','메뉴'],ascending=[False,True]) # 가격은 내림차순, 메뉴는 오름차순 (가나다순)
print(df)
# df = df.reset_index()
# print(df)
df = df.reset_index(drop=True)
print(df)
##########################################
집에서 하니깐 너모너모 잘 안된다
미친듯이 낮은 효율 ㄷㄷ
내일은 꼭!! 스터디카페에 가서 해야겠다. 꼭 가려고 회원권 결제도 바로 해버렸음. 하여튼간에 뭔가 결제하는건 참 쉽다 ㅠ
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())
#1
print(df.iloc[:3])
print(df.loc[:2])
#2
print(df.loc[1:2,'메뉴':'할인율'])
print(df.iloc[1:3,0:3])
#3
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],
}
df = pd.DataFrame(data)
print(df)
df = df.sort_values('가격',ascending=False)
print(df.head(3))
print(df.iloc[:3]) # 이 둘은 같은 결과임
반응형
'IT,SW,Data,Cloud,코딩 > Python' 카테고리의 다른 글
2023년6월7일 파이썬공부 - 데이터전처리 (1) | 2023.06.07 |
---|---|
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.05 |
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 |
댓글