Ich habe ein etwas seltsames Verhalten gefunden, wenn ich einen Pandas DataFrame aus Listen erstelle und ihn in csv mit einem bestimmten Dezimaltrennzeichen umwandle.Pandas DataFrame to csv: Dezimaltrennzeichen für gemischten Typ angeben
Dies funktioniert wie erwartet:
>>> import pandas as pd
>>> a = pd.DataFrame([['a', 0.1], ['b', 0.2]])
>>> a
0 1
0 a 0.1
1 b 0.2
>>> a.to_csv(decimal=',', sep=' ')
' 0 1\n0 a 0,1\n1 b 0,2\n'
jedoch in diesem Fall das Dezimaltrennzeichen eingestellt ist nicht richtig:
>>> b = pd.DataFrame([['a', 'b'], [0.1, 0.2]])
>>> b
0 1
0 a b
1 0.1 0.2
>>> b.to_csv(decimal=',', sep=' ')
' 0 1\n0 a b\n1 0.1 0.2\n'
Wenn ich transponieren b
, um einen Datenrahmen wie a
das Dezimalsystem zu erhalten Separator ist immer noch nicht richtig eingestellt:
>>> b.T.to_csv(decimal=',', sep=' ')
' 0 1\n0 a 0.1\n1 b 0.2\n'
Warum ich frage: In meinem Programm habe ich Spalten als einzelne Listen (z. col1 = ['a', 'b']
und col2 = [0.1, 0.2]
, aber die Anzahl und das Format der Spalten variieren kann), und ich möchte sie konvertieren mit einem bestimmten Dezimaltrennzeichens csv, so möchte ich wie eine Ausgabe haben
' 0 1\n0 a 0,1\n1 b 0,2\n'
Welche Version von Pandas verwenden Sie? dezimal wurde nur in 0.16 ab –
@NickHale Ich benutze 0.18.1 – elzell