Hallo, ich habe eine Liste (Pandas Dataframe) in der immer die Position und der Wert gelistet sind.
0 230
1 240
.
.
.
20 270
Beim schreiben in eine csv bekomme ich die Auftrennung von Wert und Position nicht hin. Es wird immer als zusammengehörig gelesen. Hat jemand eine Idee?
import csv
import pandas as pd
import numpy as np
from scipy import *
from numpy import *
import matplotlib.pyplot as plt
dF = pd.read_csv("Example.csv", sep=';') #schreibt csv daten in pandas dataframe(dF)
xresult = [] #kreiert leere liste
xresult = dF.x #schreibt Daten aus csv in leere liste
print xresult #zeigt inhalt der liste in python
setmax = 285
setmin = 210
for i in range(len(xresult)):
if xresult > setmax:
xresult= 'NaN'
elif xresult < setmin:
xresult = 'NaN'
print xresult
l = len(xresult) #bestimmt die Anzahl der Werte
print "Datenanzahl:",l
b=xresult.count()
print "Anzahl vorhandener Werte:",b
e = l-b
print "Anzahl fehlender Werte:",e
xresult = dF.x.fillna(method = 'ffill') #bfill=backwardfill, ffill is filling the list with value before if na(=NaN)
xresult = [abs(xresult)]#bildet den Betrag der Zahl
mean=np.mean(xresult)#berechnet den Mittelwert
print "Mittelwert:",mean
std=(np.std(xresult))#berechnet Standardabweichung
print "Standardabweichung:",std
max = mean*1.15#berechnet oberen Toleranzwert
min = mean*0.85#berechnet unteren Toleranzwert
print "Obere Toleranz:",max
print "Untere Toleranz:",min
print xresult
out = csv.writer(open("Ausgabe.csv","w"), delimiter='\t',quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in xresult:
out.writerow(row)
Liste in csv schreiben, Spaltentrennung funktioniert nicht
Du hast immer noch nicht die code-Tags im Forum gefunden???
90% Deines Codes sind für die Frage irrelevant.
Trotzdem ein Hinweis:
Was gibt denn Dein "print xresults" aus? Ist es ein Objekt, das aus Zeilen und Zellen besteht?
90% Deines Codes sind für die Frage irrelevant.
Trotzdem ein Hinweis:
Was gibt denn Dein "print xresults" aus? Ist es ein Objekt, das aus Zeilen und Zellen besteht?
Ich weiß nicht wieso du versucht die CSV-Datei mit pandas auszulesen.
Mach es am besten so:
Die Liste könntest du so ausgeben (an dieser Stelle sollte dein Teil folgen):
Die Ausgabe wäre diese:
Also du weißt worauf es hinaus läuft. Vielleicht hilft dir das ja.
Mach es am besten so:
Code: Alles auswählen
import csv
reader = csv.reader(open("datei.csv"), delimiter=";")
Code: Alles auswählen
for row in reader:
print(row)
Code: Alles auswählen
['Inhalt1', 'ganzLangerInhalt', 'kurz']
['Inhalt2', 'nochmehrInhalt', 'tiny']
...
Code: Alles auswählen
print("Zennoe sprach!")
Mit Pandas weil es mit anderen Befehlen nicht funktionieren wollte.
@sirius3
Man muss anscheinend die Werte in string umwandeln, aber es klappt noch immer nicht
print '\n'.join(map(str, xresult)) #converts each item in the list to a string, and then joins them
out = csv.writer(open("Ausgabe_Example.csv","w"), delimiter='\t',quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in xresult:
out.writerow('{}\n'.format(row))
@sirius3
Man muss anscheinend die Werte in string umwandeln, aber es klappt noch immer nicht
print '\n'.join(map(str, xresult)) #converts each item in the list to a string, and then joins them
out = csv.writer(open("Ausgabe_Example.csv","w"), delimiter='\t',quotechar='"', quoting=csv.QUOTE_MINIMAL)
for row in xresult:
out.writerow('{}\n'.format(row))
Nein Marleb, csv kann sehr gut mit Zahlen umgehen. Um Dir aber sinnvoll helfen zu können, wäre ein Minimalbeispiel nötig.
Z.B.:
Jetzt erwarte ich dies und bekomme aber das, oder es kommt der Fehler xy.
Z.B.:
Code: Alles auswählen
xresult = [[0, 0.213], [1, 0.321]]
with open("ausgabe.csv", "w") as out_csv:
out = csv.writer(out_csv)
for row in xresult:
out.writerow(row)
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Uhm ... Comma-Seperated-Values-Dateien sind nunmal (standardmaessig) durch Kommas getrennt.
Fuer Leerzeilen kann man den Begrenzer aendern:
Fuer Leerzeilen kann man den Begrenzer aendern:
Code: Alles auswählen
xresult = [[0, 0.213], [1, 0.321]]
with open("ausgabe.csv", "w") as out_csv:
out = csv.writer(out_csv, delimiter="\n\n")
for row in xresult:
out.writerow(row)
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte