Arbeiten mit Python Pandas 0.19.Python - initiieren leerer Datenrahmen und füllen aus einem anderen Datenrahmen
Ich möchte einen neuen Datenrahmen (df2) als Teilmenge eines vorhandenen Datenrahmens (DF1) erstellen. df1 sieht wie folgt aus:
In [1]: df1.head()
Out [1]:
col1_name col2_name col3_name
0 23 42 55
1 27 55 57
2 52 20 52
3 99 18 53
4 65 32 51
Die Logik ist:
df2 = []
for i in range(0,N):
loc = some complicated logic
df1_sub = df1.ix[loc,]
df2.append(df1_sub)
df2 = pd.DataFrame.from_records(df2)
Das Ergebnis DF2 ist in der Tat ein Datenrahmen, aber der Inhalt aller Spaltennamen von DF1 besteht. Es sieht wie folgt aus:
In [2]: df2.head()
Out [2]:
col1_name col2_name col3_name
0 col1_name col2_name col3_name
1 col1_name col2_name col3_name
2 col1_name col2_name col3_name
3 col1_name col2_name col3_name
4 col1_name col2_name col3_name
Ich weiß, dass es wahrscheinlich auf die Umwandlung von der Liste zu Datenrahmen verwandt ist, aber ich bin mir nicht sicher, was genau ich hier fehlt. Oder gibt es einen besseren Weg, dies zu tun?
Bitte 'df1.head()' und das endgültige Ergebnis, das Sie wollen. Das macht das Problem leichter verständlich. – MYGz
Ich bin mir nicht sicher, was genau Sie fragen, aber es gibt viele Dinge, die angesprochen werden müssen. Verwenden Sie '.ix' nur, wenn es absolut notwendig ist. Sie sollten dafür keine Liste von Datenrahmen erstellen müssen, aber wenn Sie dies tun, sollte die letzte Zeile in 'pd.concat (df2)' geändert werden. Bitte geben Sie weitere Informationen an, da es möglich sein könnte, keine for-Schleife zu verwenden, um die Logik zu konstruieren. Auch der Name 'df2' bedeutet, dass Sie einen DataFrame haben. Verwenden Sie stattdessen etwas wie "df_list". –
in der for-Schleife überprüfen Sie den Wert von loc, kann es Ihnen sagen, wenn etwas falsch ist – Shijo