空のDataFrameの作り方のバリエーションを書きます。
いろいろな空のDataFrame
バリエーションとしては、以下でしょうか。
- Index とカラム名のない空の DataFrame
- カラム名ありの空の DataFrame
- Index ありの空の DataFrame
- Index とカラム名のある空の DataFrame
コードで見てみます。
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に値を入力する
DataFrameに値を入力するコードを書きます。
# 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
iat, at, iloc, locでDataFrameに値を入力する
iat/at/iloc/loc の使い方を書きます。
iat/at は一箇所の変更、iloc/loc は複数箇所の変更に使います。
# 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