Ich habe einen Datenrahmen df1 mit mehreren Spalten und Zeilen. Einfaches Beispiel:
TIME T1 T2
1 10 100
2 20 200
3 30 300
Ich möchte einen leeren Datenrahmen df2 erstellen und später neue Spalten mit den Berechnungsergebnissen hinzufügen.
Für diesen Moment sieht mein Code folgendermaßen aus:
df1=pd.read_csv("1.txt",index_col="TIME")
df2=df1.copy()[[]] #copy df1 and erase all columns
... zwei neue Spalten hinzufügen:
df2["results1"],df2["results2"]=df1["T1"]*df["T2"]*3,df1["T2"]+100
Gibt es einen besseren / sichereren / schnelleren Weg, dies zu tun? Ist es möglich, einen leeren Datenrahmen df2 zu erstellen und nur den Index von df1 zu kopieren?
Antworten:
Dadurch wird ein DataFrame ohne Spalten, sondern nur mit einem Index erstellt, und es handelt sich um denselben Index wie in df1.
quelle
Es ist besser, den Index als df1.index.copy () festzulegen.
Sie können verwenden
df1.index
istdf2.index
zu prüfen , ob sie das gleiche Objekt sindquelle
Sie können den Index eines Datenrahmens auch direkt einem anderen Datenrahmen zuweisen.
df2.index=df1.index
quelle
Sie können diesen Funktionscode verwenden:
df2=df1[[]].copy()
quelle
NaN
Fügen Sie den Index hinzu, um zu vermeiden, dass alle nach dem Concat angezeigt werden.Verwenden Sie beim Definieren des neuen Datenrahmens mit
X
transformierten den gleichen Index wie den ursprünglichen Datenrahmen.quelle