Seite 1 von 1
np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 09:34
von incoggnito
Hallo Zusammen,
irgendwie finde ich nicht die richtige Syntax um zwei Vektoren in zwei Spalten einer csv einzufügen.
Zeilenweise stellt kein Problem dar!
Könnt ihr mir ein Codesample zeigen, wie ihr sowas macht?
Viele Grüße
Inco
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 10:04
von Sirius3
@incoggnito: zuerst mußt Du aus den Vektoren eine nx2-Matrix machen. Dann sollte das Speichern kein Problem sein.
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 11:10
von incoggnito
funzt leider nicht, die Tabelle in python passt, ... im csv wird alles in eine Spalte geschrieben.
Brauche ich dafür einen speziellen Delimiter?
Code: Alles auswählen
data= hstack([D[:,None],ef[:,None]])
savetxt(csvfile, data)
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 12:06
von Sirius3
wie sehen denn D und ef aus?
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 12:31
von incoggnito
Aktuell so:
D --> float64 (1, )--> array(58.9....)
ef --> float64 (1, ) --> array(5159.6...)
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 12:45
von incoggnito
Hat sich erledigt:
Code: Alles auswählen
data= hstack([D[:,None],ef[:,None]])
savetxt(csvfile, data, fmt="%2.3f", delimiter=';', newline='\n')
Versteh zwar nicht, warum das im .txt mit dem Tabstopp nicht genauso funktioniert ... aber dann halt so.
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 13:12
von incoggnito
Etwas off Topic, aber wie schafft man es die Dezimaltrennzeichen durch Kommas zu ersetzen?
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 27. April 2017, 14:44
von noisefloor
Hallo,
Computer nutzen die amerikanischen Notation, d.h. der Punkt trennt die Nachkommastellen ab. Bei Excel & Co kann man das halt über die lokalen Ländereinstellungen ändern. NumPy kann das AFAIK nicht, Pandas kann es wohl aber.
Du könntest auf die exportierte CSV Datei noch ein Skript loslassen, was die Punkte durch Kommas ersetzt. Oder, falls es um den Export in eine Tabellenkalkulation geht, der Tabellenkalkulation beim Import mitteilen, dass das Trennzeichen für die Nachkommastellen ein Punkt ist.
Gruß, noisefoor
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 4. Mai 2017, 08:58
von incoggnito
hallo,
wie macht man mit pandas ein .csv, dass statt den Punkten bei den Nachkommastellen Kommas ausgibt?
gruß inco
Re: np.Array in csv spaltenweise einfügen
Verfasst: Donnerstag 4. Mai 2017, 09:36
von noisefloor
Hallo,
die Methode `to_csv' eines Dataframes kennt das (optional) Argument `decimal`, mit dem du das Trennzeichen festlegen kannst. Doku:
http://pandas.pydata.org/pandas-docs/st ... o_csv.html
Gruß, noisefloor
Re: np.Array in csv spaltenweise einfügen
Verfasst: Freitag 5. Mai 2017, 06:25
von incoggnito
Hat so mit dem numpy.array geklappt:
Code: Alles auswählen
Array1=Matrix1[:,0]
Array2=Matrix2[:,0]
csvfile=path2result + name + '.csv'
Data= hstack([Array1[:,None],Array2[:,None]])
df = DataFrame(Data, columns=['Spaltenname1','Spaltenname2'])
df.to_csv(csvfile, index=False, sep=';', decimal=',',float_format='%.3f')
VG Inco