2017-12-06 2 views
-4

Also ich möchte diese Art von Daten in eine CSV-Datei mit einem Komma als Trennzeichen analysieren.Datenanalyse von .data-Datei nach .csv Python

2014-11-19 08:57:45.696;1;1;52.33705;4.843468;8.319668;20.44;93.05875;6;5;1416383865;0.0806427;-0.4734802;-0.7419281;-16.14367;27.67606;-15.92525;53.06408 
52.48165;26;0.04704554;0.9128267;0.4871223;0.1783603;0.2536548;0.6368796;0.07435028;0.8879893;0.4615479;-0.1116289;0.1097959;0.04115437;0.0.0.0;10.167.22.1;1;0 

2014-11-19 08:57:46.695;2;2;52.33704;4.843778;8.393764;20.03;92.07;6;5;1416383866;-0.7679138;0.02275085;-1.0784;-22.94859;32.63707;2.281387;63.01468 
62.43224;26;-0.2999492;-0.8103959;1.792917;0.1327813;-0.4999467;0.05921629;-0.7161857;-0.6697808;1.959598;-0.1525345;0.02713824;-0.3281385;0.0.0.0;10.167.22.1;1;0 

Ich möchte es so etwas wie dies in der CSV-Datei suchen:

08:57:45.696, 1, 1, 52.33705......... 

Entfernen grundsätzlich das Datum an der Front, und das Umschalten der Semikolons in Komma. Wie kann ich das in einem Python-Programm machen, ich habe noch nicht viel geparst, also wären einige Tipps sehr schön!

Vielen Dank im Voraus

+0

Ihr Beispiel enthält für Sekunden nach dem Zeitpunkt, in hh ein neues Feld hinzuzufügen: mm: ss-Format ist das zielgerichtet? Wenn ja, können Sie dort Ihre Anforderungen ausarbeiten? – Zooby

+0

Es ist eigentlich nicht Sekunden, es ist ein Zeitstempel. – PEREZje

+0

2014-11-19 08: 57: 45.696; wurde 08:57:45, 45.696, 1.1 Ich hätte erwartet 08: 57: 45.696, 1,1 Ist es eine Anforderung, den Zeitstempel in zwei Felder zu erweitern? – Zooby

Antwort

0

Sie müssen nicht um das Datum zu analysieren, wenn sie im Format konsistent sind, können Sie das Ganze als einen String behandeln kann (man nicht mit ihm als Datum noch die Interaktion basiert auf Ihrer Frage) und teilen Sie es einfach auf, dann ersetzen Sie Semikolons durch Kommas.

s[11:].replace(';', 'c') 
+0

Wie würde ich gehen, dies zu einer neuen Datei hinzuzufügen, habe ich eine for-Schleife durch die Zeilen der original.data-Datei versucht, dann ändern Sie diese Zeile mit dem Code, den Sie zur Verfügung gestellt. Und dann das in die neue Datei schreiben. Aber ich bekomme diesen Fehlercode: TypeError: '_io.TextIOWrapper' Objekt ist nicht subskriptionierbar – PEREZje

+0

https://stackoverflow.com/questions/28977477/typeerror-io-textiowrapper-object-is-not-subscripable Hilft das? – Zooby

+0

Vielen Dank, das wird mir ziemlich helfen! – PEREZje

1

Wenn jede Zeile mit zweireihiger Pause getrennt '\ n \ n':

import pandas as pd 
import io 

data = '''\ 
2014-11-19 08:57:45.696;1;1;52.33705;4.843468;8.319668;20.44;93.05875;6;5;1416383865;0.0806427;-0.4734802;-0.7419281;-16.14367;27.67606;-15.92525;53.06408 
52.48165;26;0.04704554;0.9128267;0.4871223;0.1783603;0.2536548;0.6368796;0.07435028;0.8879893;0.4615479;-0.1116289;0.1097959;0.04115437;0.0.0.0;10.167.22.1;1;0 

2014-11-19 08:57:46.695;2;2;52.33704;4.843778;8.393764;20.03;92.07;6;5;1416383866;-0.7679138;0.02275085;-1.0784;-22.94859;32.63707;2.281387;63.01468 
62.43224;26;-0.2999492;-0.8103959;1.792917;0.1327813;-0.4999467;0.05921629;-0.7161857;-0.6697808;1.959598;-0.1525345;0.02713824;-0.3281385;0.0.0.0;10.167.22.1;1;0''' 

file = io.StringIO(data) 

# Read data 
data = '\n'.join(rows.split(" ")[1].replace('\n',';') for rows in file.read().split('\n\n')) 

# Create dataframe 
df = pd.read_csv(io.StringIO(data),sep=";", header=None) 
df.to_csv("output.csv",sep=',')