2013-05-16 11 views
100

Ist es möglich, an einen leeren Datenrahmen anzuhängen, der keine Indizes oder Spalten enthält?Anhängen an einen leeren Datenrahmen in Pandas?

Ich habe versucht, dies zu tun, aber am Ende immer einen leeren Datenrahmen zu bekommen.

z.B.

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

Das Ergebnis sieht wie folgt aus:

Empty DataFrame 
Columns: [] 
Index: [] 
+0

Beantwortet eine ähnliche Frage hier: http://stackoverflow.com/questions/13784192/creating-an-empty-pandas-dataframe-then-filling-it/41529411#41529411. im Grunde so etwas wie diese 'newDF = pd.DataFrame() # erstellt einen neuen Datenrahmen, der leer ist newDF = newDF.append (oldDF, ignore_index = True) # ignorieren Index ist optional' – geekidharsh

Antwort

197

, die funktionieren sollte:

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

aber die append nicht an Ort und Stelle geschehen, so dass Sie den Laden zu finden Ausgabe, wenn Sie es wünschen:

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

Vielen Dank! Das hat funktioniert! Ich wusste nicht, dass ich die Ausgabe speichern musste ... Ich hätte die Dokumentation wahrscheinlich besser lesen sollen, aber ich weiß es zu schätzen, @DSM! – ericmjl

+5

ich vergesse immer, dass Sie es zuweisen müssen! –

+18

tatsächlich, dass Append nicht an Ort und Stelle geschieht ist die wichtigste Info hier;) – refuzee

56

Und wenn Sie eine Zeile hinzufügen möchten, können Sie ein Wörterbuch verwenden:

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

, die Sie gibt: kann

age height name 
0 9  2 Zed 
+1

Das ist cool! Danke – geekidharsh

+1

Ja! Das ist genau das, wonach ich gesucht habe. – Cai

6

Sie die Daten auf diese Weise verketten:

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

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

Danke, ich habe versucht, die concat. Aber warum sowohl append und concat, wenn sie den gleichen Job tun können –

+0

Dieser Thread könnte eine gute Erklärung geben: https://stackoverflow.com/questions/15819050/pandas-dataframe-concat-vs-append – Deepish

Verwandte Themen