2017-08-01 1 views
2

Ich habe einen einfachen Datenrahmen mit 2 Spalten und 2 Zeilen. Ich habe auch eine Liste von 4 Nummern.Kann gezackten Datenrahmen in Pandas nicht erstellen?

Ich möchte diese Liste mit der ersten Spalte des Datenrahmens verketten, und nur die erste. Also wird der Datenrahmen 6 Zeilen in der ersten Spalte und 2 in der zweiten Spalte haben.

Ich schrieb diesen Code:

df1 = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB')) 
numbers = [5, 6, 7, 8] 
for i in range(0, 4): 
    df1['A'].loc[i + 2] = numbers[i] 
print(df1) 

Er druckt den ursprünglichen Datenrahmen seltsam genug. Aber wenn ich den Ausdruck df1['A'] debugge und auswerte, dann zeigt es die neuen Zahlen an. Was ist denn hier los?

Es ist nicht nur, dass es das Original df druckt, es schreibt auch das Original-df zu CSV, wenn ich to_csv Methode verwende.

Antwort

1

Es scheint, Sie brauchen:

for i in range(0, 4): 
    df1.loc[0, i] = numbers[i] 
print (df1) 
    A B 0 1 2 3 
0 1 2 5.0 6.0 7.0 8.0 
1 3 4 NaN NaN NaN NaN 

df1 = pd.concat([df1, pd.DataFrame([numbers], index=[0])], axis=1) 
print (df1) 
    A B 0 1 2 3 
0 1 2 5.0 6.0 7.0 8.0 
1 3 4 NaN NaN NaN NaN 
Verwandte Themen