Python/빅데이터 분석과 머신러닝

#4 데이터 보기(판다스)

sundori 2024. 7. 17. 15:10

목차

     

    판다스 데이터 구조

    우리에게 가장 친숙한 데이터 구조는 엑셀이거나 개발자의 경우 SQL 테이블일 것이다.

    판다스는 2차원 행과 열(행렬)로 이루어진 데이터 구조를 데이터프레임(DataFrame)으로 제공한다. 이러한 데이터프레임은 판다스에서 가장 많이 사용하는 객체이며, 파이썬으로 데이터 분석을 할 때 필수적인 도구이다.

    밑에 사진은 판다스 치트시트인데 해당 시트만 공부해도 데이터프레임을 사용한 데이터 전처리에 많은 도움이 된다.

    판다스 치트시트

     

    판다스 치트시트

    시리즈와 데이터프레임

    시리즈

    시리즈(Series)는 모든 데이터 유형(정수, 문자열, 부동 소수점 숫자, 객체 등)을 저장할 수 있는 1차원 레이블이 지정된 배열이다.

    1차원 레이블이란 시리즈(Series)에서 각 데이터 요소(원소)들에 붙는 인덱스(위치)를 의미합니다.

     

    시리즈 구조
      동물(이름)
    0(인덱스) Cat(값)
    1 Dog
    2 Monkey

    시리즈는 딕셔너리, 리스트, 튜플 등을 사용해 만들 수 있고 인덱스와 쌍으로 이루어진 데이터로 구성이 된다.

    """리스트로 만들기"""
    import pandas as pd
    data = pd.Series(['Cat', 'Dog', 'Monkey'], ['0', '1', '2'])
    
    
    print()
    print(data)
    print()
    ------------------------
    
    0       Cat
    1       Dog
    2    Monkey
    dtype: object
    """딕셔너리로 만들기"""
    import pandas as pd
    
    # 딕셔너리 생성
    data = {'0': 'Cat', '1': 'Dog', '2': 'Monkey'}
    
    # Series 객체 생성
    sd = pd.Series(data)
    
    # 출력
    print()
    print(sd)
    print()
    -----------------------
    0       Cat
    1       Dog
    2    Monkey
    dtype: object
    """튜플로 만들기"""
    import pandas as pd
    
    # 튜플 생성
    data = ('Cat', 'Dog', 'Monkey')
    index = ('0', '1', '2')
    
    # Series 객체 생성
    sd = pd.Series(data, index=index)
    
    # 출력
    print()
    print(sd)
    print()
    --------------------
    0       Cat
    1       Dog
    2    Monkey
    dtype: object

    이렇게 어떤 방식을 사용해도 큰 차이가 전혀 없다.

    데이터프레임

    데이터프레임은 엑셀의 스프레드시트와 같은 형태인 행과 열 자료 구조입니다. 각 열에서는 서로 다른 종류의 값(숫자, 문자열 등)을 가질 수 있고 위에 보았던 시리즈가 여러 개 합쳐진 것이 데이터프레임이라고 보면 된다.

    데이터프레임 구조
      동물 나이
    0(인덱스) Cat(값) 5(값)
    1 Dog 4
    2 Monkey 3

    데이터프레임을 딕셔너리와 리스트로 만드는 것의 차이점은 딕셔너리로 만들면 데이터프레임의 열을 하나씩 쌓아가는 형태이고, 리스트로 만들면 행을 하나씩 쌓아가는 형태로 이해하면 된다.

    """딕셔너리로 데이터프레임 만들기"""
    import pandas as pd
    
    # 딕셔너리 생성
    data_dict = {
        '이름': ['홍길동', '김철수', '이영희'],
        '나이': [30, 25, 35],
        '성별': ['남', '남', '여']
    }
    
    # 데이터프레임 생성
    df_dict = pd.DataFrame(data_dict)
    
    # 출력
    print("딕셔너리로 만든 데이터프레임:")
    print(df_dict)
    
    ---------------------------
    딕셔너리로 만든 데이터프레임:
        이름  나이 성별
    0  홍길동  30  남
    1  김철수  25  남
    2  이영희  35  여

    딕셔너리로 데이터프레임 생성 과정:

    • data_dict는 열 이름('이름', '나이', '성별')을 키로, 각 열의 데이터를 값으로 가지고 있습니다.
    • pd.DataFrame(data_dict)를 사용하여 딕셔너리를 데이터프레임으로 변환합니다. Pandas는 이 데이터를 열 단위로 쌓아 데이터프레임을 생성합니다.
    """리스트로 데이터프레임 만들기"""
    import pandas as pd
    
    # 리스트 생성
    data_list = [
        ['홍길동', 30, '남'],
        ['김철수', 25, '남'],
        ['이영희', 35, '여']
    ]
    
    # 열 레이블 정의
    columns = ['이름', '나이', '성별']
    
    # 데이터프레임 생성
    df_list = pd.DataFrame(data_list, columns=columns)
    
    # 출력
    print("리스트로 만든 데이터프레임:")
    print(df_list)
    ----------------------------
    리스트로 만든 데이터프레임:
        이름  나이 성별
    0  홍길동  30  남
    1  김철수  25  남
    2  이영희  35  여

    리스트로 데이터프레임 생성 과정:

    • data_list는 각 행의 데이터를 리스트로 묶어서 저장하고 있습니다.
    • columns 리스트는 각 열의 이름을 정의하여 열 레이블로 사용됩니다.
    • pd.DataFrame(data_list, columns=columns)를 사용하여 리스트와 열 레이블을 기반으로 데이터프레임을 생성합니다. 각 리스트의 요소들은 행 단위로 추가되어 데이터프레임을 구성합니다.

    데이터프레임 조작

    빅데이터 분석과 머신러닝 모델을 구축할 때 주어진 데이터를 바로 사용하는 경우는 드물고 원하는 형태로 변환하여 사용하는 경우가 대부분이다. 앞서 말한 것은 데이터를 가공하는 것을 말한 것인데 데이터를 가공하는 과정을 데이터 전처리데이터 조작이라고 한다.

    하지만 데이터를 가공하는 과정인 데이터 전처리는 빅데이터 분석을 할 때 가장 많은 시간이 걸리는 과정이기도 하다. 왜냐? 해보면 알 것이다.

    데이터프레임 행과 열

    데이터베이스는 판다스의 데이터프레임과 같은 구조인 행과 열로 이루어지는데  분야에 따라 같은 의미이지만 다양한 명칭으로 불린다.

    Name Sex Age Grade
    홍길동 남자 22 2
    나미란 여자 23 3

     

     

    변수

    열, 칼럼, 피처, 특징 -> 이름, 설별, 나이, 학년

    Name Sex Age Grade

     

    관측치

    행, 로우, 데이터 -> 값을 측정한 단위, 각각의 사람

    홍길동 남자 22 2
    나미란 여자 23 3

     

    각 값 -> 22, 2 등등

    홍길동 남자 22 2
    나미란 여자 23 3

    보기 좋은 데이터

    깔끔한 데이터(Tidy data)

    깔끔한 데이터   지저분한 데이터
    NO 변수   NO 수학_점수 영어_점수
    홍길동 수학 85   홍길동 85 88
    홍길동 영어 88   김철수 99 99
    김철수 수학 99        
    김철수 영어 99        

    데이터프레임 확인

    tips 데이터를 사용해서 요약 정보를 보자

    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips)
    print(tips.info())
    ------------------------------
         total_bill   tip     sex smoker   day    time  size
    0         16.99  1.01  Female     No   Sun  Dinner     2
    1         10.34  1.66    Male     No   Sun  Dinner     3
    2         21.01  3.50    Male     No   Sun  Dinner     3
    3         23.68  3.31    Male     No   Sun  Dinner     2
    4         24.59  3.61  Female     No   Sun  Dinner     4
    ..          ...   ...     ...    ...   ...     ...   ...
    239       29.03  5.92    Male     No   Sat  Dinner     3
    240       27.18  2.00  Female    Yes   Sat  Dinner     2
    241       22.67  2.00    Male    Yes   Sat  Dinner     2
    242       17.82  1.75    Male     No   Sat  Dinner     2
    243       18.78  3.00  Female     No  Thur  Dinner     2
    
    [244 rows x 7 columns]
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 244 entries, 0 to 243
    Data columns (total 7 columns):
     #   Column      Non-Null Count  Dtype   
    ---  ------      --------------  -----   
     0   total_bill  244 non-null    float64 
     1   tip         244 non-null    float64 
     2   sex         244 non-null    category
     3   smoker      244 non-null    category
     4   day         244 non-null    category
     5   time        244 non-null    category
     6   size        244 non-null    int64   
    dtypes: category(4), float64(2), int64(1)
    memory usage: 7.4 KB

    위의 코드를 보면 알 수 있듯이 tips 데이터는 244개의 행과 7개의 열에 관한 정보가 있고 Info 함수로 클래스 유형, 행 인덱스의 구성, 열 이름의 종류와 개수, 각 열의 자료형과 개수, 메모리 할당량에 관한 정보를 볼 수 있다.

     

    """ 데이터프레임에서 상위 5개 데이터 추출"""
    
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips.head())
    ----------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    """ 데이터프레임에서 상위 10개 데이터 추출"""
    
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips.head())
    ----------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    5       25.29  4.71    Male     No  Sun  Dinner     4
    6        8.77  2.00    Male     No  Sun  Dinner     2
    7       26.88  3.12    Male     No  Sun  Dinner     4
    8       15.04  1.96    Male     No  Sun  Dinner     2
    9       14.78  3.23    Male     No  Sun  Dinner     2
    """ 하위 데이터 5개 추출 """
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips.tail())
    ------------------------------------------
         total_bill   tip     sex smoker   day    time  size
    239       29.03  5.92    Male     No   Sat  Dinner     3
    240       27.18  2.00  Female    Yes   Sat  Dinner     2
    241       22.67  2.00    Male    Yes   Sat  Dinner     2
    242       17.82  1.75    Male     No   Sat  Dinner     2
    243       18.78  3.00  Female     No  Thur  Dinner     2
    """ 하위 데이터 7개 추출 """
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips.tail())
    ------------------------------------------
         total_bill   tip     sex smoker   day    time  size
    237       32.83  1.17    Male    Yes   Sat  Dinner     2
    238       35.83  4.67  Female     No   Sat  Dinner     3
    239       29.03  5.92    Male     No   Sat  Dinner     3
    240       27.18  2.00  Female    Yes   Sat  Dinner     2
    241       22.67  2.00    Male    Yes   Sat  Dinner     2
    242       17.82  1.75    Male     No   Sat  Dinner     2
    243       18.78  3.00  Female     No  Thur  Dinner     2

    행 데이터

    데이터를 행 단위로 가져와보자.

    속성 설명 대상
    loc 인덱스를 기준으로 행 데이터 읽기 인덱스 이름
    ex) ["A" : "C"] -> "A", "B", "C"
    iloc 행 번호를 기준으로 행 데이터 읽기 정수 위치 인덱스
    ex) [1 : 3] -> 1, 2
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips.head(6))
    print()
    print(tips.loc[3])
    print()
    print(tips.iloc[5])
    ---------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    5       25.29  4.71    Male     No  Sun  Dinner     4
    
    total_bill     23.68
    tip             3.31
    sex             Male
    smoker            No
    day              Sun
    time          Dinner
    size               2
    Name: 3, dtype: object
    
    total_bill     25.29
    tip             4.71
    sex             Male
    smoker            No
    day              Sun
    time          Dinner
    size               4
    Name: 5, dtype: object
    """여러 인덱스 가져오기"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips.head(6))
    print()
    print(tips.loc[[1, 3, 5]])
    ---------------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    5       25.29  4.71    Male     No  Sun  Dinner     4
    
       total_bill   tip   sex smoker  day    time  size
    1       10.34  1.66  Male     No  Sun  Dinner     3
    3       23.68  3.31  Male     No  Sun  Dinner     2
    5       25.29  4.71  Male     No  Sun  Dinner     4
    """특정 범위 행 데이터 가져오기"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    print(tips[0:4])
    print()
    print(tips.loc[0:4])
    print()
    print(tips.iloc[0:4])
    ----------------------------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    """특정 범위 인덱스의 컬럼 가져오기"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    print(tips[0:3])
    print()
    print(tips.loc[0 : 3, ["total_bill", "day"]])
    -----------------------------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    
       total_bill  day
    0       16.99  Sun
    1       10.34  Sun
    2       21.01  Sun
    3       23.68  Sun
    """특정 인덱스 값과 특정 컬럼에 있는 값 가져오기"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    print(tips[0:3])
    print()
    print(tips.loc[0,["sex"]])
    ---------------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    
    sex    Female
    Name: 0, dtype: object
    """행과 열 동시에 지정해서 원하는 부분의 데이터 가져오기"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    print(tips.head(5))
    print()
    print(tips.iloc[1:3, 0:2])
    ---------------------------------------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    
       total_bill   tip
    1       10.34  1.66
    2       21.01  3.50
    """인덱스  기준으로 행, 열을 지정"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    print(tips.head(5))
    print()
    print(tips.iloc[[1,2,4], [0,2]])
    ------------------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    
       total_bill     sex
    1       10.34    Male
    2       21.01    Male
    4       24.59  Female
    """명시적으로 행 또는 열 전체 가져오기"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    print(tips.head(5))
    print()
    print(tips.iloc[1:3, :])
    print()
    print(tips.iloc[:, 1:3])
    ----------------------------------------
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    
       total_bill   tip   sex smoker  day    time  size
    1       10.34  1.66  Male     No  Sun  Dinner     3
    2       21.01  3.50  Male     No  Sun  Dinner     3
    
          tip     sex
    0    1.01  Female
    1    1.66    Male
    2    3.50    Male
    3    3.31    Male
    4    3.61  Female
    ..    ...     ...
    239  5.92    Male
    240  2.00  Female
    241  2.00    Male
    242  1.75    Male
    243  3.00  Female
    
    [244 rows x 2 columns]
    """조건을 주어 선택하기"""
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    print(tips.tip > 3)
    ----------------------------
    0      False
    1      False
    2       True
    3       True
    4       True
           ...  
    239     True
    240    False
    241    False
    242    False
    243    False
    Name: tip, Length: 244, dtype: bool
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    # Female이면서 smoker인 경우 필터링
    tips[(tips["sex"] == "Female") & (tips["smoker"] == "Yes")]
    
    print( tips[(tips["sex"] == "Female") & (tips["smoker"] == "Yes")] )
    ---------------------------------------------------------------------
         total_bill   tip     sex smoker   day    time  size
    67         3.07  1.00  Female    Yes   Sat  Dinner     1
    72        26.86  3.14  Female    Yes   Sat  Dinner     2
    73        25.28  5.00  Female    Yes   Sat  Dinner     2
    92         5.75  1.00  Female    Yes   Fri  Dinner     2
    93        16.32  4.30  Female    Yes   Fri  Dinner     2
    100       11.35  2.50  Female    Yes   Fri  Dinner     2
    101       15.38  3.00  Female    Yes   Fri  Dinner     2
    102       44.30  2.50  Female    Yes   Sat  Dinner     3
    103       22.42  3.48  Female    Yes   Sat  Dinner     2
    109       14.31  4.00  Female    Yes   Sat  Dinner     2
    164       17.51  3.00  Female    Yes   Sun  Dinner     2
    168       10.59  1.61  Female    Yes   Sat  Dinner     2
    169       10.63  2.00  Female    Yes   Sat  Dinner     2
    178        9.60  4.00  Female    Yes   Sun  Dinner     2
    186       20.90  3.50  Female    Yes   Sun  Dinner     3
    188       18.15  3.50  Female    Yes   Sun  Dinner     3
    191       19.81  4.19  Female    Yes  Thur   Lunch     2
    197       43.11  5.00  Female    Yes  Thur   Lunch     4
    198       13.00  2.00  Female    Yes  Thur   Lunch     2
    201       12.74  2.01  Female    Yes  Thur   Lunch     2
    202       13.00  2.00  Female    Yes  Thur   Lunch     2
    203       16.40  2.50  Female    Yes  Thur   Lunch     2
    205       16.47  3.23  Female    Yes  Thur   Lunch     3
    209       12.76  2.23  Female    Yes   Sat  Dinner     2
    213       13.27  2.50  Female    Yes   Sat  Dinner     2
    214       28.17  6.50  Female    Yes   Sat  Dinner     3
    215       12.90  1.10  Female    Yes   Sat  Dinner     2
    219       30.14  3.09  Female    Yes   Sat  Dinner     4
    221       13.42  3.48  Female    Yes   Fri   Lunch     2
    225       16.27  2.50  Female    Yes   Fri   Lunch     2
    226       10.09  2.00  Female    Yes   Fri   Lunch     2
    229       22.12  2.88  Female    Yes   Sat  Dinner     2
    240       27.18  2.00  Female    Yes   Sat  Dinner     2
    import pandas as pd
    import seaborn as sns
    
    tips = sns.load_dataset("tips")
    
    # 일요일인 경우 필터링
    sunday_tips = tips[tips["day"].isin(["Sun"])]
    print("일요일인 경우 데이터:")
    print(sunday_tips.head())  # 일부 데이터만 출력
    
    # 팁을 3달러 지불한 고객 필터링
    tips_3_dollars = tips[tips["tip"].isin([3])]
    print("\n팁을 3달러 지불한 고객 데이터:")
    print(tips_3_dollars.head())  # 일부 데이터만 출력
    ------------------------------------------------
    일요일인 경우 데이터:
       total_bill   tip     sex smoker  day    time  size
    0       16.99  1.01  Female     No  Sun  Dinner     2
    1       10.34  1.66    Male     No  Sun  Dinner     3
    2       21.01  3.50    Male     No  Sun  Dinner     3
    3       23.68  3.31    Male     No  Sun  Dinner     2
    4       24.59  3.61  Female     No  Sun  Dinner     4
    
    팁을 3달러 지불한 고객 데이터:
        total_bill  tip     sex smoker  day    time  size
    13       18.43  3.0    Male     No  Sun  Dinner     4
    29       19.65  3.0  Female     No  Sat  Dinner     2
    32       15.06  3.0  Female     No  Sat  Dinner     2
    45       18.29  3.0    Male     No  Sun  Dinner     2
    49       18.04  3.0    Male     No  Sun  Dinner     2

    열 변수

    데이터프레임의 각 칼럼들은 각기 특별한 자료형을 갖고 있습니다. 이러한 속성들을 확인해 봅시다.

    데이터프레임 자료형 확인

    파이썬의 기본적인 소수점은 float64로, 기본적인 문자열은 string(str)이 아니라 object라는 자료형을 가지고 있습니다. 그리고 열 변수 형식은 시리즈 형식입니다.

    데이터 조작

    메서드 기능
    df.count() 개수 확인
    df.index
    df.columns
    df.values
    인덱스 보기
    변수 보기
    데이터 보기
    df.sort_values()
    df.sort_values(ascending=False)
    오름차순
    내림차순
    df.sum() 행, 열 합계

    데이터프레임의 개수 확인

    데이터 행의 개수를 세는 방법으로 count함수를 사용한다.

     

    데이터프레임 인덱스보기 및 컬럼보기
    데이터프레임 행, 열 구조 보기

     

      데이터프레임 시리즈
    행 개수 세기 len(df)
    df.shape[0]
    len(df.index)
    len(s)
    s.size
    len(s.index)
    열 개수 세기 df.shape[0] N/A
    null 제외한 행 개수 df.count() s.cout()
    그룹별 행 개수 df.groupby(...).count() sgroupby(...).size()
    그룹별 null 제외한 행 개수 df.groupby(...).count() s.groupby(...).count()

    정렬

    데이터 연결과 병합

    판다스는 두 개 이상의 데이터프레임을 하나로 결합하는 방식으로 데이터 연결과 병합을 지원한다.

    데이터 연결

    연결은 데이터 행을 위, 아래 또는 좌우로 결합하는 방식을 말하는데 데이터 행을 연결하는 과정을 통해 간단히 두 시리즈나 데이터프레임을 연결할 수 있지만 이 경우 인덱스 값이 중복될 수 있다. concat 메서드를 사용하면 기준 열(key column) 없이 데이터를 연결할 수 있다.

    데이터 병합

    병합은 두 데이터프레임의 공통되는 열 또는 인덱스를 기준으로 두 개의 테이블을 합치는 과정이다.

    이때 기준이 되는 열, 행의 데이터를 키(key)라고 한다.

    단일변수 데이터 보기

    데이터 분석은 변수의 유형을 구분하는데 서부터 시작하는데, 우선 단일변수와 변수 유형에 따른 분석부터 해야 한다.

     

    728x90

    'Python > 빅데이터 분석과 머신러닝' 카테고리의 다른 글

    #8 데이터 분석  (1) 2024.07.23
    #7 데이터 시각화  (2) 2024.07.18
    #6 데이터 탐색  (0) 2024.07.14
    #5 데이터 클렌징  (1) 2024.07.14
    #3 데이터 준비  (1) 2024.07.05