Pandas④ (データフレーム 行の追加)

データフレーム 行の追加

データフレームに行を追加する場合、追加する行をデータフレームとして作成し、append メソッドで追加しまします。

追加するデータフレームは列名を同じにしておく必要があります。

列名が異なると新規の列として追加されるので注意が必要です。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
import pandas as pd
df1 = pd.DataFrame(
{'A': [10, 20, 30, 40, 50], # 列Aとその値
'B': [0.8, 1.6, 2.4, 4.3, 7.6], # 列Bとその値
'C': [-1, -2.6, -3.5, -4.3, -5.1] }, # 列Cとその値
)
df2 = pd.DataFrame(
{'A': [60, 70, 80, 90, 100], # 列Aとその値
'B': [10.2, 11.6, 12.4, 14.3, 17.6], # 列Bとその値
'C': [-6, -12.6, -13.5, -14.3, -15.1] }, # 列Cとその値
)
df1.append(df2) # df1にdf2を追加

[実行結果]

新規の行が追加されましたが、追加した行のインデックスが 0 から開始されています。

元の行のインデックスに続くようにするためには、appendメソッドの引数に ignore_index=True を指定する必要があります。

[Google Colaboratory]

1
df1.append(df2, ignore_index=True)  # 行インデックスを連続させる

[実行結果]

追加された行のインデックスが、元のデータから連続になっていることを確認できます。

indexオプションで行名を設定している場合は、追加する行データにも行名を付けてから追加します。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pandas as pd
df1 = pd.DataFrame(
{'A': [10, 20, 30, 40, 50], # 列Aとその値
'B': [0.8, 1.6, 2.4, 4.3, 7.6], # 列Bとその値
'C': [-1, -2.6, -3.5, -4.3, -5.1] }, # 列Cとその値
index = ['r1', 'r2', 'r3', 'r4', 'r5'] # 行名を設定
)
df2 = pd.DataFrame(
{'A': [60, 70, 80, 90, 100], # 列Aとその値
'B': [10.2, 11.6, 12.4, 14.3, 17.6], # 列Bとその値
'C': [-6, -12.6, -13.5, -14.3, -15.1] }, # 列Cとその値
index = ['r6', 'r7', 'r8', 'r9', 'r10'] # 行名を設定
)
df1.append(df2) # df1にdf2を追加する

[実行結果]

設定した行名にて、行が追加されていることを確認できます。