空のDataFrame作成

TAGS :

いろいろな空のDataFrame

空の DataFrame を作るときに、どうだったけ? となるので、ここにバリエーションを残したいと思います。
Index とカラム名のない空の DataFrame、カラム名ありの空の DataFrame、Index ありの空の DataFrame、Index とカラム名のある空の DataFrame の4つでしょうか。

Python

        import pandas as pd

        # Indexとカラム名のない空のDataFrame
        df_a = pd.DataFrame()
        print(df_a)
        # Empty DataFrame
        # Columns: []
        # Index: []
    
        # カラム名ありの空のDataFrame
        df_b = pd.DataFrame(columns=['col_1', 'col_2'])
        print(df_b)
        # Empty DataFrame
        # Columns: [col_1, col_2]
        # Index: []
    
        # Indexありの空のDataFrame
        df_c = pd.DataFrame(index=['row_1', 'row_2'])
        print(df_c)
        # Empty DataFrame
        # Columns: []
        # Index: [row_1, row_2]
    
        # Indexとカラム名のある空のDataFrame
        df_d = pd.DataFrame(index=['row_1', 'row_2'], columns=['col_1', 'col_2'])
        print(df_d)
        #       col_1 col_2
        # row_1   NaN   NaN
        # row_2   NaN   NaN
    

空のDataFrameに値を入力する。

pandas を使っていないと、DataFrame の扱いをすぐに忘れてしまうので、やってみます。

Python

        # Indexとカラム名のある空のDataFrame
        df_d = pd.DataFrame(index=['row_1', 'row_2'], columns=['col_1', 'col_2'])
        print(df_d)
        #       col_1 col_2
        # row_1   NaN   NaN
        # row_2   NaN   NaN
    
        # "col_2"列に値を入れる。
        df_d['col_2'] = 3
        print(df_d)
        #       col_1  col_2
        # row_1   NaN      3
        # row_2   NaN      3
    
        # "row_2"行に値を入れる。
        df_d.loc['row_2'] = 5
        print(df_d)
        #       col_1  col_2
        # row_1   NaN      3
        # row_2     5      5
    
        # locを使って、"col_2"列に値を入れる。
        df_d.loc[:, 'col_2'] = 7
        print(df_d)
        #       col_1  col_2
        # row_1   NaN      7
        # row_2     5      7
    
        # ("row_2", "col_2")に値を入れる。
        df_d.loc['row_2', 'col_2'] = 9
        print(df_d)
        #       col_1  col_2
        # row_1   NaN      7
        # row_2     5      9
    

これだけ残しておけば、久しぶりに DataFrame を使っても、思い出せそうです。

iat, at, iloc, loc

ここまでやったら、iat/at/iloc/loc の使い方も復習しておきます。
iat/at は一箇所の変更、iloc/loc は複数箇所の変更に使います。

Python

        # Indexとカラム名のある空のDataFrame
        df_e = pd.DataFrame(index=['row_1', 'row_2'], columns=['col_1', 'col_2'])
        print(df_e)
        #       col_1 col_2
        # row_1   NaN   NaN
        # row_2   NaN   NaN
    
        df_e.iat[df_e.index.get_loc('row_1'), df_e.columns.get_loc('col_1')] = 2
        print(df_e)
        #       col_1 col_2
        # row_1     2   NaN
        # row_2   NaN   NaN
    
        df_e.at['row_1', 'col_2'] = 4
        print(df_e)
        #       col_1 col_2
        # row_1     2     4
        # row_2   NaN   NaN
    
        df_e.iloc[df_e.index.get_loc('row_2'), :] = 6
        print(df_e)
        #       col_1 col_2
        # row_1     2     4
        # row_2     6     6
    
        df_e.loc[:, 'col_2'] = 8
        print(df_e)
        #       col_1  col_2
        # row_1     2      8
        # row_2     6      8