Ich mache ein paar Simulationen resp. eine Systemanalyse durch Variieren von Parametern (in diesem Fall nur rpm
) und Anhängen jeder letzten Zeile eines Ergebnisdatenrahmens results_df
an einen zusammenfassenden Datenrahmen df
, der das Baviour meines Systems in Abhängigkeit von der variierten rpm
enthält.
Um einen geeigneten Index für Plotting und Datenanalyse zu erhalten, habe ich die verschiedenen Werte (hier rpm
) aus der Liste in eine Pandas-Serie ser
konvertiert und diese Serie mit dem zusammenfassenden Datenrahmen df
mit den Ergebnissen versehen Ich interessiere mich für.
Da die Ergebnisse jeder Berechnung, die mich interessiert, nur die letzte Zeile jeder Berechnung ist, entziehe ich diese Daten aus dem Ergebnisdatenrahmen results_df
, indem ich .tail(1)
verwende.
Was ich bisher gemacht habe, wird im folgenden Ausschnitt gezeigt:
%Vor%Diese csv-Datei, die ich bekomme, hat das folgende Format:
%Vor%Ich erwartete jedoch drei Dezimalziffern und ein Komma als Dezimalzeichen für meine Indexspalte, wie hier gezeigt:
%Vor% So scheint es, dass die Optionen index
und decimal
nicht auf die Indexspalte angewendet werden, wenn Datenrahmen mit dem Befehl .to_csv
in csv-Dateien exportiert werden.
Wie kann ich dieses Verhalten erreichen, da die Option index
auf True
gesetzt ist und alle Werte (mit Ausnahme der Indexspalte) das richtige Format und Dezimalzeichen haben?
Muss ich die Indexspalte irgendwie getrennt behandeln?
Ich würde Ihre zwei unteren Zeilen umschreiben:
%Vor%In
%Vor% Dies ist ein bisschen eine Umgehung, aber wie Sie bemerkt haben, arbeiten die Schlüsselwortargumente decimal=
und float_format=
nur auf Daten Spalten, nicht auf dem Index.
Stattdessen setze ich den Index in den Datenrahmen mit reset_index
und sage dann to_csv(index=False
, den Index nicht in der Datei zu speichern (da er jetzt in den Daten enthalten ist).
Auch das Öffnen eines Dateistreams ( with open('foo.csv', 'w') as f:
) ist besser für Pandas bestimmt, was das selbst macht, wenn Sie ihm einfach eine Zeichenfolge 'foo.csv'
als erstes Argument geben.
Tags und Links python indexing csv pandas decimal-point