空の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

