Pandas - 2


DataFrameとList、dict、カレンダの相互変換


  • 次元リストと標準→DataFrame変換
  • import numpy as np
    
    col_name1=['col1']    # 컬럼명
    list1 = [1, 2, 3]    # 1차원 리스트
    array1 = np.array(list1)    # 1차원 ndarray
    
    print('array1 shape:', array1.shape )
    
    df_list1 = pd.DataFrame(list1, columns=col_name1)
    print('1차원 리스트로 만든 DataFrame:\n', df_list1)
    
    df_array1 = pd.DataFrame(array1, columns=col_name1)
    print('1차원 ndarray로 만든 DataFrame:\n', df_array1)
  • 二次元リストと標準→DataFrame変換
  • # 3개의 컬럼명이 필요 (3열 이므로)
    col_name2=['col1', 'col2', 'col3']
    
    # 2행x3열 형태의 리스트 생성
    list2 = [[1, 2, 3],
             [11, 12, 13]]
    
    array2 = np.array(list2)    # 2행x3열 형태의 ndarray 생성
    print('array2 shape:', array2.shape )
    
    df_list2 = pd.DataFrame(list2, columns=col_name2)
    print('2차원 리스트로 만든 DataFrame:\n', df_list2)
    
    df_array1 = pd.DataFrame(array2, columns=col_name2)
    print('2차원 ndarray로 만든 DataFrame:\n', df_array1)
  • dict→DataFrame変換
  • # Key는 컬럼명으로 매핑
    # Value는 리스트 형(또는 ndarray)
    dict = {'col1':[1, 11], 'col2':[2, 22], 'col3':[3, 33]}
    df_dict = pd.DataFrame(dict)
    print('딕셔너리로 만든 DataFrame:\n', df_dict)

    DataFrame.values

  • DataFrame→Andarray変換
  • # DataFrame을 ndarray로 변환
    array3 = df_dict.values
    print('df_dict.values 타입:', type(array3))
    print('df_dict.values shape:', array3.shape)
    print(array3)

    DataFrame.tolist()


    DataFrame.to_dict()

  • DataFrame→list,dict変換
  • # DataFrame을 리스트로 변환
    list3 = df_dict.values.tolist()
    print('df_dict.values.tolist() 타입:', type(list3))
    print(list3)
    
    # DataFrame을 딕셔너리로 변환
    dict3 = df_dict.to_dict('list')
    print('\n df_dict.to_dict() 타입:', type(dict3))
    print(dict3)

    DataFrameのカラム・データセットへのアクセス

  • の新しい列を作成して値を割り当てるには、DataFrameに新しい列名を入力し、
  • の値を割り当てます.


    DataFrameデータの削除


    drop()


    DataFrame.drop(labels, axis=0, inplace=False)
    Label:デフォルトでは含まれません
    axis:デフォルトはaxis=0
    inplace:default,inplace=false
  • 行削除時、axis=0、列削除時、axis=1
  • 元のデータFrameを保持し、新しい削除されたデータFrameを返すため、inplace=False
  • が新しい変数として割り当てます.
    inplace=True drop結果を
  • ソースDataFrameに適用
    titanic_drop_df = titanic_df.drop('Age_0', axis=1 )    # default로 inplace = False
    titanic_drop_df.head(3)
    titanic_df.head(3)
    # 여러개의 컬럼(열)을 한번에 삭제하려면 리스트 형태로 컬럼명 입력
    drop_result = titanic_df.drop(['Age_0', 'Age_by_10', 'Family_No'], axis=1, inplace=True)
    print(' inplace=True 로 drop 후 반환된 값:',drop_result)    # None
    titanic_df.head(3)
    titanic_df = pd.read_csv('titanic_train.csv')
    
    print('#### before axis 0 drop ####')
    print(titanic_df.head(6))
    
    titanic_df.drop([0,1,2], axis=0, inplace=True)    # index가 0, 1, 2에 해당하는 행 삭제
    
    print('#### after axis 0 drop ####')
    print(titanic_df.head(3))    # reset_index() 하기 전까지는 기존 index를 유지

    index

  • Data Frameまたはシリーズレコードを一意に識別するオブジェクト
  • 1次元データ
  • Indexオブジェクトのみを抽出するには、DataFrameを使用します.インデックスまたはシリーズ.Indexプロパティ
  • の使用
  • は、演算
  • を含まない.
  • 識別用
  • のみ
  • reset index()メソッドは、新しい連続数値をインデックスに割り当て、既存のインデックスは「index」のカラム名で追加され、
  • # 원본 파일 로딩 
    titanic_df = pd.read_csv('titanic_train.csv')
    
    # Index 객체 추출
    indexes = titanic_df.index
    print(indexes)
    
    # Index 객체를 실제 값 ndarrray로 변환 
    print('Index 객체 array값:\n',indexes.values)
    print(type(indexes.values))
    titanic_reset_df = titanic_df.reset_index(inplace=False)
    titanic_reset_df1 = titanic_reset_df .rename(columns={'index':'old_index'})
    titanic_reset_df1.head(3)