【Python】in 검색한 결과의 컬럼만 표시시킨다

6480 단어 pandas파이썬

경위



요전날 시험으로 만든 함수가 상당히 편리할까라고 생각했으므로 메모 ✍️
250컬럼 정도 있는 가운데에서 "유통기한xx"와 같은 컬럼만 추출했다

하고 싶은 일


  • df[["賞味期限1", "賞味期限2",:...]] 같은 수치가 줄어들 👈 여기를 개선하고 싶었다
  • "유통기한1", "유통기한2":... 와 같은 컬럼이 있는 경우 한 번에 검색 추출할 수 있다.

    만든 함수


    # in 検索した結果のカラムのみ表示させる
    
    def in_search_col_list(df, cols="賞味期限", head=2) -> List:
        """ in search した colの結果を返す
    
        params
        ----------
        df(DataFrame): 取り込みデータ
        cols(str): 検索にかけたいグローバルの値
        head(int): 先頭から抽出するレコード数
    
        return
        ----------
        df(IndexList) in search したカラムリスト結果を返す
        """
        return df[[for col in list(df.columns) if cols in col]].head(head)
    

    사용 예


    # 必要package
    import pandas as pd
    import numpy as np
    from typing import List
    
    # サンプルデータ(実際は, *tabファイルを読み込んでいたりします。)
    df = pd.DataFrame({ '賞味期限A' : 1.,
                        '保管場所B' : pd.Timestamp('20130102'),
                        '保管場所C' : pd.Series(1,index=list(range(5)),dtype='float32'),
                        '賞味期限D' : np.array([3] * 5,dtype='int32'),
                        'E賞味期限' : pd.Categorical(["test","train","test","train", "test"]),
                        '食品個F' : 'foo',
                        '期間限定G' : ['1000', np.nan, '123', '1234', '']})
    
    
    def in_search_col_list(df, cols="賞味期限", head=2) -> List:
        return df[[ col for col in list(df.columns) if cols in col]].head(head)
    
    # 関数呼び出し
    in_search_col_list(df, cols="賞味期限", head=2)
    

    출력 결과





    요약


  • cols 의 인수명에 검색하고 싶은 캐릭터 라인을 넣으면, 한발로 검색할 수 있으므로 편리
  • 좋은 웹페이지 즐겨찾기