DataFrameの先頭に行を追加する方法


プログラミング初心者です。
内容に間違いがあるかもしれないのでご注意ください。


DataFrameの先頭に行を追加するメソッドは無さそうだったので、
追加したい行のみのDataFrameを作成してpandas.concat()メソッドで合成する方法をとってみる。

追加される側のDataFrameの作成
import numpy as np
import pandas as pd

# 3行2列のランダム数値が入った配列から作成
df = pd.DataFrame(np.random.rand(3,2), index=['A', 'B', 'C'], columns=['foo', 'bar'])
#         foo       bar
# A  0.299105  0.841390
# B  0.424596  0.316961
# C  0.055032  0.110246
追加したい行をDataFrameとして作成
# 追加される側と同じ列数の1行配列を作成(ここでは1行2列)
a = np.zeros(len(df.columns)).reshape(1,len(df.columns))
# array([[0., 0.]])

# DataFrameに変換する
df_insert = pd.DataFrame(a, index=['X'], columns=df.columns)
#    foo  bar
# X  0.0  0.0
pandas.concat()で合成
pd.concat([df_insert, df]) 
#         foo       bar
# X  0.000000  0.000000
# A  0.299105  0.841390
# B  0.424596  0.316961
# C  0.055032  0.110246

もっと良い方法がありそうな気もするけれど、ひとまずこれで対応。