처음 아시는 분들이 신경 쓰실 판다스의 사용법.

저는 평소에 Go 언어를 자주 사용하고 Python 자신도 잘 쓰지 않아서 팬더스를 거의 사용하지 않았습니다.요즘 팬더스를 사용할 수밖에 없는 상황에 살짝 만져봤어요.
나는 판다스가 매우 편리한 고기능이라고 생각한다.다만, 기능이 너무 높아서 자세히 소개된 기사가 많지만, 제가 알고 싶은 것은 그 상태가 아니기 때문에 접점으로 정리해봤는데, 이런 것들을 최소한 알고 있다면 팬더스의 기본을 이해했다고 할 수 있을 것 같습니다.

대상 독자

  • 제1차pandas
  • pandas의 데이터 구조를 몰라
  • python은 항상 쓸 수 있을 것 같아
  • pandas의 데이터 구조는 두 가지가 있다


    pandas의 데이터 구조는 두 가지로 나뉜다. DataFrame 표시표(열과 줄)의 데이터 구조와 1열 또는 1행Series만 표시하는 데이터 구조이다.

    DataFrame


    데이터 구조는 행과 열이 있는 표와 유사하다.판다스라면 거의 이 데이터 구조를 처리할 것이다.( 공식 문서 )
    name
    height
    birthdate
    a
    tanaka
    160
    1990-01-01
    b
    yamada
    170
    1980-02-02
    c
    kato
    180
    1970-03-03
    각 열에는 열 이름이 있습니다.
    맨 왼쪽의 열을 인덱스라고 하는데, 줄 번호와 같은 존재이다.색인에 열 이름을 추가할 수도 있고, 색인에 여러 열을 지정할 수도 있습니다.인덱스는 숫자, 문자열, 날짜, 시간 등 각종 데이터를 사용할 수 있다.

    Series


    DataFrame과 달리 1열 또는 1행만 나타내는 데이터 구조입니다.( 공식 문서 )
    weight
    a
    53
    b
    67
    c
    83
    한 열만 있지만 색인이 있습니다.DataFrame과 마찬가지로 여러 열 색인이 있거나 수치, 문자열, 날짜 및 시간 등 다양한 데이터를 색인으로 사용할 수 있습니다.그 밖에 열명은 때로는 가지고 있고 때로는 없다.

    DataFrame 및 Series의 관계 및 고려 사항


    DataFrame은 여러 시리즈의 모음으로 구성됩니다.
    내 경우는 시리즈형의 존재를 몰랐을 때 어느 도서관에서 시리즈형의 데이터를 얻어 곤혹스러웠다.
    하나의 시리즈형 데이터도 DataFrame으로 변환할 수 있습니다.초보자가 시리즈형의 조작법을 기억하는 것은 매우 번거롭다고 생각하기 때문에 시리즈형의 데이터는 주저하지 말고 DataFrame형으로 바꾸는 것이 좋지 않겠는가.이렇게 되면 DataFrame형으로만 통일할 수 있기 때문에 초보자에게는 비교적 처리하기 쉽다.
    변환 방법은 매우 간단하다. 시리즈형 데이터.to_frame()만 있으면 된다.( 공식 문서 )
    시리즈형 데이터는 DataFrame형 데이터로 빠르게 변환되기 때문에 이 글은 DataFrame형에 대한 조작만 소개한다.

    데이터 프레임 사용 방법


    새 데이터 프레임 만들기


    df = pd.DataFrame(
        [
            ['tanaka',160,datetime(1990, 1, 1)],
            ['yamada',170,datetime(1980, 2, 2)],
            ['kato',180,datetime(1970, 3, 3)]
        ],
        index=['a','b','c'],
        columns=['name','height','birthdate']
    )
    
    DataFrame의 제작 방법은 여러 가지 방법이 있기 때문에 이것은 DataFrame의 제작 방법의 한 예이다.이 예에서 모든 줄은 데이터를 정의했지만 열에 따라 데이터를 정의할 수도 있고 csv 데이터를 읽을 수도 있고 index와columns를 지정하지 않을 수도 있다.( 공식 문서 )
    index를 지정하지 않으면 0, 1, 2...자동 번호 매기기.

    DataFrame 컨텐츠 디버그


    print(df)
    
    홍보만 하면 됩니다.데이터가 많을 때 처음의 몇 줄과 끝의 몇 줄을 표시합니다. index,columns, 기록수 등은 다음과 같습니다.
                      Open        High         Low       Close   Adj Close   Volume
    Date                                                                           
    1966-07-05    0.000000    0.273663    0.267490    0.269547    0.124835   388800
    1966-07-06    0.000000    0.283951    0.267490    0.283951    0.131506   692550
    1966-07-07    0.000000    0.291152    0.271605    0.273663    0.126741  1858950
    1966-07-08    0.000000    0.276749    0.267490    0.276749    0.128171  1239300
    1966-07-11    0.000000    0.283951    0.272634    0.275720    0.127694   656100
    ...                ...         ...         ...         ...         ...      ...
    2021-07-29  243.320007  245.199997  242.979996  244.020004  244.020004  2572300
    2021-07-30  243.850006  245.410004  242.210007  242.710007  242.710007  2336800
    2021-08-02  244.240005  244.679993  239.690002  240.100006  240.100006  2693900
    2021-08-03  239.559998  239.949997  235.250000  236.949997  236.949997  3299300
    2021-08-04  236.449997  236.600006  233.050003  234.830002  234.830002  2240000
    
    [13866 rows x 6 columns]
    

    DataFrame 또는 Series 확인


    print(type(df))
    
    데이터 프레임의 경우-><class 'pandas.core.frame.DataFrame'>시리즈의 경우 -> <class 'pandas.core.series.Series'>및 내보내기.

    Series를 DataFrame으로 변환

    .to_frame() 너한테만 해줄게.( 공식 문서 )
    ser = pd.Series(
        [53, 67, 83],
        index=['a','b','c'],
        name="weight"
    )
    df = ser.to_frame()
    

    DataFrame에서 색인 목록 체크 아웃


    df.index
    

    DataFrame에서 column 차트 꺼내기


    df.columns
    

    데이터 프레임에서 이동


    행 - 시리즈 객체를 가져옵니다.
    df.loc['index名']
    

    DataFrame에서 지정된 기준에서 여러 행 체크 아웃


    df.loc[df['height'] > 165]
    

    데이터 프레임에서 값 체크 아웃


    df.loc['index名', 'column名']
    

    행별 루프 데이터 프레임


    for index, row in df.iterrows():
    	print(index) # indexの値を出力する
    	print(row['column名']) # column名で値を取得できる
    

    데이터 프레임 업데이트


    index와column을 지정하여 데이터를 업데이트할 수 있습니다.
    df.loc['index名', 'colume名'] = "sato"
    
    조건을 지정하여 업데이트하려면 다음과 같이 하십시오.
    df.loc[df['height'] > 165, 'name'] = "sato"
    

    데이터 프레임에 행 추가


    index 이름을 지정합니다. 값을 그룹에 대입하고 줄을 추가할 수 있습니다.배열 요소의 수량은 열 수와 일치해야 합니다.
    df.loc['index名'] = ['sato',185,datetime(1960, 3, 3)]
    
    index의 데이터 프레임을 지정하지 않은 상황에서 index는 0, 1, 2...연결len(df)이기 때문에 DataFrame의 줄 수를 얻는 것이 좋습니다.
    df.loc[len(df)] = ['sato',185,datetime(1960, 3, 3)]
    

    데이터 프레임에 열 추가하기


    column의 이름을 지정합니다. 수치의 그룹을 대입한 후에 열을 추가할 수 있습니다.배열 요소의 수는 행 수와 일치해야 합니다.
    df['column名'] = [55,65,75]
    

    데이터 프레임의 행 삭제


    df.drop('index名')
    

    데이터 프레임 열 삭제

    drop()의 매개 변수에 axix=1를 추가하면 줄을 삭제할 수 있습니다.
    df.drop('column名', axis=1)
    

    csv 파일을 데이터 프레임으로 읽기


    df = pd.read_csv('ファイルパス')
    
    csv에 꼬리표가 있으면 열 이름이 자동으로 읽힙니다.다른 작은 옵션을 사용해서 열 이름을 지정할 수도 있고, 몇 걸음 건너뛰어서 불러올 수도 있습니다.( 공식 문서 )

    csv 파일로 내보내기


    df.to_csv('ファイルパス')
    
    대부분의 경우 이렇게 하면 된다.옵션을 통해 상세하게 설정할 수도 있다.( 공식 문서 )

    끝맺다


    pandas의 데이터 구조와 DataFrame에 대한 처리를 총괄하였다.이걸 알면 그에 상응하는 판다스로 데이터를 조회하고 조작할 수 있을 것 같아요.나는 이곳의 일 이외에 아무것도 모르지만, 판다스로 데이터를 구할 수 있다!
    판다스는 매우 높은 기능이기 때문에 다양한 방법으로 똑같은 처리를 할 수 있고 다양한 선택을 통해 손이 가려운 곳에 도달할 수 있다.여기에 소개된 것은 단지 각종 방법 중의 한 예일 뿐이다.
    디테일공식 문서이 있으니 필요할 때마다 참고하는 게 좋아요.또 구글로 검색하면 자세한 내용을 소개하는 글이 일본어나 영어나 다양해 곤란하지 않다.

    좋은 웹페이지 즐겨찾기