Ich versuche, die Verwendung von Pandas zu simulieren, um auf eine sich ständig ändernde Datei zuzugreifen.Streaming-Daten für Pandas df
Ich habe eine Datei lesen eine CSV-Datei, eine Zeile hinzufügen, dann schlafen für eine zufällige Zeit, um Masseneingabe zu simulieren.
import pandas as pd
from time import sleep
import random
df2 = pd.DataFrame(data = [['test','trial']], index=None)
while True:
df = pd.read_csv('data.csv', header=None)
df.append(df2)
df.to_csv('data.csv', index=False)
sleep(random.uniform(0.025,0.3))
Die zweite Datei in Daten für den Wandel ist die Überprüfung durch die Form der Datenrahmen ausgibt:
import pandas as pd
while True:
df = pd.read_csv('data.csv', header=None, names=['Name','DATE'])
print(df.shape)
Das Problem dabei ist, während ich die richtige Form der DF bekommen, gibt es bestimmte Zeiten, in denen es (0x2)
ausgibt.
d.h .:
...
(10x2)
(10x2)
...
(10x2)
(0x2)
(11x2)
(11x2)
...
Dies tritt bei einige aber nicht zwischen jeder Formänderung (die Datei zu Datenrahmen hinzufügen).
Wenn das passiert, wenn das erste Skript die Datei zum Hinzufügen von Daten öffnet und das zweite Skript nicht darauf zugreifen kann, also (0x2), tritt dabei ein Datenverlust auf?
Ich kann nicht direkt auf den Stream zugreifen, nur die Ausgabedatei. Oder gibt es andere mögliche Lösungen?
bearbeiten
Der Zweck dieser nur die neuen Daten zu laden ist (ich einen Code, der das tut) und tun Analyse „on the fly“. Einige der Analysen enthalten Ausgabe/Sek., Grafische Darstellung (ähnlich der Stromaufzeichnung) und einige andere numerische Berechnungen.
Das größte Problem ist, dass ich nur Zugriff auf die CSV-Datei habe, und ich muss in der Lage sein, die Daten zu analysieren, wie es ohne Verlust oder Verzögerung kommt.
Was ist das Ziel im Wesentlichen? Könnte etwas wie Wachhund, um Änderungen an der Datei zu überprüfen, ein besserer Ansatz sein? –
Sie können auch eine Sperre implementieren, so dass nur ein Prozess die Datei gleichzeitig öffnen kann. Unix kann dies auf verschiedene Arten tun http://stackoverflow.com/questions/29520587/checking-running-python-script-within-the- Python-Skript/29522672 # 29522672. Mit einem Prozess lesen und das andere Schreiben würde wahrscheinlich Sie keine Daten verlieren, aber wenn Sie die Daten verwenden, um Änderungen zu testen, erhalten Sie falsche Ausgabe –
Watchdog scheinen wie ein interessantes Werkzeug zu verwenden, aber nicht das, was ich suche. Ich habe meine Frage bearbeitet, um mehr zu erklären. – Leb