상세 컨텐츠

본문 제목

2024.07.02 / Pandas / 문제 분석 (1)

경험 리뷰/한국경제 with Tossbank

by shok11 2024. 7. 2. 17:29

본문

728x90
반응형

[K-Digital Training] 한국경제신문 with toss bank

 

import seaborn as sns
#라이브러리를 불러오기

tips = sns.load_dataset("tips")
#tips 데이터셋 불러오기
tips.head()
#.head() 기본적으로 5개의 행을 제공

 

 

tips. shape
#shape 속성은 데이터 프레임의 행(가로)과 열(새로)의 갯수를 알려줘요.

 

 

tips.info()

#info() 메서드를 사용하면 아래와 같은 정보를 얻을 수 있어요:

#행(가로)의 수: 표에 몇 개의 행이 있는지 알려줘요.
#열(새로)의 수: 표에 몇 개의 열이 있는지 알려줘요.
#각 열의 이름: 표에 어떤 이름을 가진 열들이 있는지 알려줘요.
#각 열의 데이터 종류: 숫자인지, 글자인지 같은 데이터를 알려줘요.
#각 열에 있는 값의 개수: 각 열에 값이 몇 개 있는지 알려줘요.

# category는 여러 개의 고정된 값들 중 하나를 가지는 데이터 타입
# int는 정수를 나타내는 데이터 타입
# object 문자열 데이터는 글자들로 이루어진 데이터

#object 타입과 category 타입의 차이

#메모리 효율성:
#object 타입은 각 문자열을 개별적으로 저장하므로 메모리 사용량이 많아요.
#category 타입은 고정된 값들을 인덱스로 저장하기 때문에 메모리 사용량이 적어요.

#성능:
#category 타입은 동일한 값들이 반복될 때 더 빠르게 처리할 수 있어요. 특히 그룹화(grouping)나 고유 값 찾기 등의 작업에서 성능이 좋아져요.

#데이터 저장 방식
#object: 각 값이 개별적으로 저장돼요.
#category: 고유한 값들을 한 번만 저장하고, 각 값의 인덱스만 저장해요. 예를 들어, "1학년", "2학년", "3학년"이 여러 번 반복된다면, 이 고유 값들을 한 번만 저장하고 각 행에 인덱스를 매겨서 저장해요.

 

 

tips.loc[:, :].head(1)

# loc 인덱서: DataFrame에서 행과 열을 라벨로 선택하는 도구 #라벨은 DataFrame에서 행과 열 EX: 열의 라벨(가로), 행의 라벨(새로)
# :: 모두 선택한다는 의미
# tips.loc[:, :]: tips DataFrame의 모든 행과 모든 열을 선택

 

 

tips.loc[tips['total_bill'] >= 20, :].head(1)

 

 

tips.loc[tips['total_bill']>= 20, :].reset_index(drop=True)

# tips['total_bill'] >= 20 -> 이 부분은 total_bill 열에서 값이 20 이상인 행들을 찾아요. 결과는 True와 False 값으로 이루어진 시리즈(Series)를 반환해요.
#.reset_index(drop=True) -> 선택한 행들을 새로운 DataFrame으로 만들고, 인덱스를 0부터 다시 설정해요.
# reset_index(): 인덱스를 초기화하는 메서드.
# drop=True: 기존 인덱스를 버리고 새로운 인덱스를 사용해요.
# 인덱스: 각 행을 고유하게 식별하는 라벨.

#reset_index(): 기존 인덱스를 유지하고 새로운 DataFrame에 열로 추가.
#reset_index(drop=True): 기존 인덱스를 완전히 삭제하고 새로운 인덱스를 0부터 다시 설정.

 

 

tips.loc[:, :].head(1)

 

 

tips.loc[tips['total_bill'] >= 20, :].head(1)

 

 

tips.loc[tips['total_bill'] >= 20, :].reset_index(drop=True)

 

# tips.loc[() & () & () & () & (), :]
tips.loc[(tips['total_bill']>= 20) & (tips['tip'] >= 3), :].reset_index(drop=True)

 

tips['day'].unique()

 

tips.loc[(tips['day'] == 'Sun') | (tips['day'] == 'Sat') | (tips['day'] == 'Fri'), :].head()

 

 

tips.loc[(tips['day'] == 'Sun') | (tips['day'] == 'Sat') | (tips['day'] == 'Fri'), :].reset_index(drop=True).shape

 

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
    'city': ['New York', 'Los Angeles', 'New Yorker', 'Chicago', 'New City'],
    'age': [25, 30, 35, 40, 45]
}

df = pd.DataFrame(data)
df

# DataFrame 생성
# df = pd.DataFrame(data)

# DataFrame 출력
# print(df)

 

 

# code
df.loc[df['city'].str.contains('New'), :].reset_index(drop=True)

#df['city'].str.contains('New') 'city' 열 선택: df['city']는 df 데이터표에서 'city'라는 열을 선택해요.
    #이 열에는 도시 이름들이 들어 있어요

#.str.contains('New'): 이 부분은 'city' 열에 있는 각 도시 이름이 'New'라는 단어를 포함하는지 확인해요. 
    #New'라는 단어가 들어간 도시 이름이면 True, 그렇지 않으면 False가 돼요.

#contains는 pandas에서 문자열이 특정 패턴을 포함하고 있는지 확인하는 메서드예요.
    #이 메서드는 str 속성으로 접근할 수 있어요.
    #주로 문자열 데이터에서 특정 단어 또는 문자열이 포함되어 있는지를 검사할 때 사용돼요.

 

728x90
반응형

관련글 더보기