DataFrameの行・列の追加【Python】

ここでは、DataFrameへの行・列の追加方法について解説します。

なお、慣例に従って以下のようにpandasをインポートしているものとして進めていきます。

import pandas as pd

サンプルデータ

サンプルデータとして以下のデータを用います。

以下のようにURLを指定して、DataFrameとして取得できます。

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')

DataFrameの行を追加する (appendメソッド)

DataFrameに行を追加するには、appendメソッドを用います。

appendメソッドで追加する項目としては、DataFrame、Series、辞書型が指定可能です。

DataFrameに別のDataFrameの行を追加する

以下の例ではサンプルデータにDataFrameで行を追加します。

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
df = pd.DataFrame([['鈴木次郎', '男', 23, '学生'], 
                    ['渡辺秋子', '女', 33, '看護師']],
                    columns=['名前', '性別', '年齢', '職業'])
df_new = df_sample.append(df)
print(df_new)
     名前 性別  年齢   職業
0  田中一郎  男  50  会社員
1  佐藤花子  女  45  弁護士
2  高橋太郎  男  30   医師
3   橋本清  男  41  自営業
0  鈴木次郎  男  23   学生
1  渡辺秋子  女  33  看護師

今の例ではignore_indexはデフォルトのままFalseだったので、元のDataFrameの行番号がそのまま継承されています。しかし、これでは行番号が重複してしまっているので、ignore_indexをTrueにしてみます。

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
df = pd.DataFrame([['鈴木次郎', '男', 23, '学生'], 
                    ['渡辺秋子', '女', 33, '看護師']],
                    columns=['名前', '性別', '年齢', '職業'])
df_new = df_sample.append(df, ignore_index=True)
print(df_new)
     名前 性別  年齢   職業
0  田中一郎  男  50  会社員
1  佐藤花子  女  45  弁護士
2  高橋太郎  男  30   医師
3   橋本清  男  41  自営業
4  鈴木次郎  男  23   学生
5  渡辺秋子  女  33  看護師

これで新たな行番号を振りなおすことができました。

なお、元のDataFrameと新たに追加するDataFrameとで列ラベルが一致しない場合は、次のよう新たな列ラベルが生成されてしまいます。

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
df = pd.DataFrame([['鈴木次郎', '男', 23, '学生'], 
                    ['渡辺秋子', '女', 33, '看護師']])
df_new = df_sample.append(df)
print(df_new)
      0        1     2      3     名前    年齢   性別   職業
0   NaN      NaN   NaN    NaN  田中一郎  50.0    男  会社員
1   NaN      NaN   NaN    NaN  佐藤花子  45.0    女  弁護士
2   NaN      NaN   NaN    NaN  高橋太郎  30.0    男   医師
3   NaN      NaN   NaN    NaN   橋本清   41.0    男  自営業
0  鈴木次郎    男   23.0   学生    NaN    NaN   NaN    NaN
1  渡辺秋子    女   33.0  看護師   NaN    NaN   NaN    NaN

DataFrameにSeries / 辞書で行を追加する

Seriesで行を追加する場合は次のようにします。

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
data = pd.Series({'名前' : '鈴木次郎', '性別' : '男', '年齢' : 23, '職業' : '学生'})
df_new = df_sample.append(data, ignore_index=True)

辞書で行を追加する場合は次のようにします。

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
data = {'名前' : '鈴木次郎', '性別' : '男', '年齢' : 23, '職業' : '学生'}
df_new = df_sample.append(data, ignore_index=True)

DataFrameの列を追加する

DataFrameに添え字[]で新たな列ラベルを指定し、リストでその項目を指定することで、列を追加することができます。
例えば、「住所」という列を追加してみます。

df_sample = pd.read_excel('https://biotech-lab.org/wp-content/uploads/2020/03/dataframe-sample-01.xlsx')
df_sample['住所'] = ['東京都', '埼玉県', '大阪府', '京都府']
print(df_sample)
     名前 性別  年齢   職業   住所
0  田中一郎  男  50  会社員  東京都
1  佐藤花子  女  45  弁護士  埼玉県
2  高橋太郎  男  30   医師  大阪府
3   橋本清  男  41  自営業  京都府

関連記事・スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です