PD DF Gleiche Spalten Namen (Same Columns Names)
Verfasst: Mittwoch 30. Oktober 2019, 11:15
Hallo,
Ich habe meine Fehler selber gefunden...... Ich habe beim letzten Befehle df.to_csv den falschen datenframe verwendet! Aber ich bin offen für semantische Tipps und andere Optimierung. Entschuldigung das ich zu früh gepostet habe!
ich bearbeite gerade einen Riesigen Datensatz. Welcher verschiedene Wellenlängen des Lichtes zu verschiedenen Zeiten hat. Ich hoffe ich habe mich nicht wieder zu dämlich angestellt und es ist nur eine Kleinigkeit.
Sieht in etwa so aus:
Time [s] 400 402 404 ... 994 996 998 1000
1 0 0.0943 0.0937 0.0931 ... 0.1534 0.1515 0.148 0.1467
2 127.397 0.0944 0.0937 0.0932 ... 0.1533 0.1501 0.1488 0.1466
3 253.524 0.0941 0.0936 0.093 ... 0.1536 0.1506 0.1481 0.1458
4 380.461 0.0944 0.0938 0.0931 ... 0.1549 0.1517 0.1487 0.1492
5 507.651 0.0941 0.0935 0.0929 ... 0.1558 0.151 0.1495 0.1477
.. ... ... ... ... ... ... ... ... ...
197 25044.7 0.0936 0.0931 0.0922 ... 0.1685 0.1662 0.1647 0.163
198 25171.8 0.0935 0.0929 0.0924 ... 0.168 0.1663 0.1634 0.1619
199 25298.6 0.0935 0.0931 0.0924 ... 0.1681 0.1665 0.1629 0.1628
200 25425.3 0.0935 0.0929 0.0923 ... 0.1698 0.1662 0.1651 0.1635
201 25552.5 0.0936 0.0931 0.0923 ... 0.1694 0.1662 0.163 0.1615
Die Wellenlänge geht immer von 400 bis 1000 danach fängt der es für die nächste Probe wieder bei 400 an.
Nun möchte ich gerne die einer Probe (also eines Blockes 400 bis 1000 plus die dazu gehörige Zeit) in ein eigenen df bzw in eine eigene csv datei speichern.
Wenn ich meine code wie unten eingefügt ausführe dann habe ich zwei Probleme:
1. verliere ich die Zeit obwohl ich extra davor versucht habe diese mir zu sichern in einen neuen datenframe.
2. es werden immer alle cols mit dem gleichen namen angefügt. Ich dachte mit der .iloc Funktion kann ich über die Position iterieren.
Ich habe meine Fehler selber gefunden...... Ich habe beim letzten Befehle df.to_csv den falschen datenframe verwendet! Aber ich bin offen für semantische Tipps und andere Optimierung. Entschuldigung das ich zu früh gepostet habe!
ich bearbeite gerade einen Riesigen Datensatz. Welcher verschiedene Wellenlängen des Lichtes zu verschiedenen Zeiten hat. Ich hoffe ich habe mich nicht wieder zu dämlich angestellt und es ist nur eine Kleinigkeit.

Sieht in etwa so aus:
Time [s] 400 402 404 ... 994 996 998 1000
1 0 0.0943 0.0937 0.0931 ... 0.1534 0.1515 0.148 0.1467
2 127.397 0.0944 0.0937 0.0932 ... 0.1533 0.1501 0.1488 0.1466
3 253.524 0.0941 0.0936 0.093 ... 0.1536 0.1506 0.1481 0.1458
4 380.461 0.0944 0.0938 0.0931 ... 0.1549 0.1517 0.1487 0.1492
5 507.651 0.0941 0.0935 0.0929 ... 0.1558 0.151 0.1495 0.1477
.. ... ... ... ... ... ... ... ... ...
197 25044.7 0.0936 0.0931 0.0922 ... 0.1685 0.1662 0.1647 0.163
198 25171.8 0.0935 0.0929 0.0924 ... 0.168 0.1663 0.1634 0.1619
199 25298.6 0.0935 0.0931 0.0924 ... 0.1681 0.1665 0.1629 0.1628
200 25425.3 0.0935 0.0929 0.0923 ... 0.1698 0.1662 0.1651 0.1635
201 25552.5 0.0936 0.0931 0.0923 ... 0.1694 0.1662 0.163 0.1615
Die Wellenlänge geht immer von 400 bis 1000 danach fängt der es für die nächste Probe wieder bei 400 an.
Nun möchte ich gerne die einer Probe (also eines Blockes 400 bis 1000 plus die dazu gehörige Zeit) in ein eigenen df bzw in eine eigene csv datei speichern.
Wenn ich meine code wie unten eingefügt ausführe dann habe ich zwei Probleme:
1. verliere ich die Zeit obwohl ich extra davor versucht habe diese mir zu sichern in einen neuen datenframe.
2. es werden immer alle cols mit dem gleichen namen angefügt. Ich dachte mit der .iloc Funktion kann ich über die Position iterieren.
Code: Alles auswählen
import pandas as pd
import matplotlib.pyplot as plt
filename = 'ExcelFiles/datenPlateReader/Platereader_testDaten.csv'
df_import = pd.read_csv(filename, delimiter= ';')
df_import.dropna()
df_transponded = df_import.transpose()
header = df_transponded.iloc[0]
df = df_transponded[1:]
df = df.rename(columns = header)
del df['Temp. [C]'] ## Nicht benötigte Daten
del df['Well / Wavelength'] ##Leeres Col
i = 400
l = 0
j = 1
for col in df:
if i < 1000:
df_to_csv[str(i)] = df.iloc[:,l]
i = i + 2
l = l + 1
#print("Das ist i:" + str(i))
#print("dast ist l:" + str(l))
else:
df.to_csv('C:/Users/fabio/OneDrive/Uni/Semester 3/Vertiefungspraktikum/Python Scripts/ExcelFiles/datenPlateReader/Datensaetz/firstExperiment/A' + str(j) + '.csv', header = True, sep=';')
break