パンダの空のDataFrameに追加しますか?


212

インデックスや列を含まない空のデータフレームに追加することはできますか?

私はこれを試みましたが、最後に空のデータフレームを取得し続けます。

例えば

df = pd.DataFrame()
data = ['some kind of data here' --> I have checked the type already, and it is a dataframe]
df.append(data)

結果は次のようになります。

Empty DataFrame
Columns: []
Index: []

ここで同様の質問に回答しました:stackoverflow.com/questions/13784192/…。基本的にこのようなものnewDF = pd.DataFrame() #creates a new dataframe that's empty newDF = newDF.append(oldDF, ignore_index = True) # ignoring index is optional
geekidharsh

何を追加しますか?単一の値?Pythonリスト?パンダシリーズ?別のデータフレーム?例の末尾のコメントは、別のデータフレームを意味していることを示唆しています-したがって、例のコードに
データフレームを

そして、「結果がこのように見える」と言ったとき、Pythonでは常にNoneを返すprint(df.append(data))ため、直接実行しようとしないでくださいappend()
smci

回答:


388

それはうまくいくはずです:

>>> df = pd.DataFrame()
>>> data = pd.DataFrame({"A": range(3)})
>>> df.append(data)
   A
0  0
1  1
2  2

しかし、これappendはインプレースは発生しないため、必要に応じて出力を保存する必要があります。

>>> df
Empty DataFrame
Columns: []
Index: []
>>> df = df.append(data)
>>> df
   A
0  0
1  1
2  2

8
ありがとうございました!うまくいきました!出力を保存する必要があることに気付きませんでした...おそらくドキュメントをよく読んでおくべきでしたが、@ DSMに感謝します!
ericmjl 2013年

9
私はあなたがそれを割り当てる必要があることをいつも忘れます!
アンディB 14

66
実際には、追加が
適切

6
パンダの例がそれを示さない理由はわかりません。ご協力いただきありがとうございます!
Drew Szurko

2
少なくとも2018年6月に、新しい行に自動でインデックスを付ける場合は、df.append(data、ignore_index = True)と記述してください。すばらしい答えをありがとう!
Adam B

98

行を追加する場合は、辞書を使用できます。

df = pd.DataFrame()
df = df.append({'name': 'Zed', 'age': 9, 'height': 2}, ignore_index=True)

あなたに与える:

   age  height name
0    9       2  Zed

パフォーマンスが低い、特に大きなデータを処理する場合
raullalves

2
他の提案された代替案、@ raullalvesとの関連でそれを説明できますか?
Bouncner

23

この方法でデータを連結できます:

InfoDF = pd.DataFrame()
tempDF = pd.DataFrame(rows,columns=['id','min_date'])

InfoDF = pd.concat([InfoDF,tempDF])

ありがとう、私は連結を試みた。しかし、なぜ同じ作業を実行できるのに、追加と連結の両方が必要なのか
Nitesh kumar 2017年

このスレッドは良い説明を与えるかもしれない:stackoverflow.com/questions/15819050/...
Deepish
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.