Überlappung in der Spalte für DateTime eines Pandas -Datenfreame sowie zusätzliche KomplikationPython

Python-Programme
Anonymous
 Überlappung in der Spalte für DateTime eines Pandas -Datenfreame sowie zusätzliche Komplikation

Post by Anonymous »

Der DateTime -Index eines Pandas -Datenframes hat Gruppen mit derselben DateTime (sie haben auch dieselbe ID -Nummer). Plus zusätzliches Problem, wie unten erläutert < /p>
Hier sind einige Börsenmärkte -Tick -Daten < /p>

Code: Select all

2025-02-14 00:00:01.192429,6143.25,2,32178,6143.25,6143.50,271611387,C,43,01,2,14
2025-02-14 00:00:01.317655,6143.25,1,32179,6143.25,6143.50,271611388,C,43,01,2,14
2025-02-14 00:00:01.317655,6143.25,1,32180,6143.25,6143.50,271611388,C,43,01,2,14
2025-02-14 00:00:01.317655,6143.25,1,32181,6143.25,6143.50,271611388,C,43,01,2,14
2025-02-14 00:00:20.222990,6143.50,1,32182,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222990,6143.50,1,32183,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222990,6143.50,1,32184,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222990,6143.50,1,32185,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32186,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32187,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32188,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:23.891463,6143.50,1,32189,6143.50,6143.75,271611391,C,43,01,2,14
2025-02-14 00:00:23.891463,6143.50,1,32190,6143.50,6143.75,271611391,C,43,01,2,14
2025-02-14 00:00:23.891463,6143.50,1,32191,6143.50,6143.75,271611391,C,43,01,2,14
2025-02-14 00:01:00.046733,6143.50,1,32192,6143.25,6143.50,271611392,C,43,01,1,14
< /code>
Wie Sie sehen können, gibt es mehrere Gruppen mit derselben DateTime (DateTime ist die erste Spalte) und auch die gleiche ID-Nummer (ID ist in der Spalte 7-te Spalte). < /p>
Ich möchte das kleinste Zeitinkrement (die Mikrosekunden) hinzufügen, wenn die Zeit gleich ist. < /p>
Dies kann getan werden Verwenden Sie: < /p>
            ttt = df.groupby(df['id']).cumcount()
df.index += pd.to_timedelta(ttt,unit='us')
Das Problem besteht darin, dass der Unterschied zwischen 2 Gruppen mit der gleichen Zeit manchmal nur 1 Mikrosekunde beträgt. Br />2025-02-14 00:00:20.222990,6143.50,1,32182,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222990,6143.50,1,32183,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222990,6143.50,1,32184,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222990,6143.50,1,32185,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32186,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32187,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32188,6143.25,6143.50,271611390,C,43,01,1,14
< /code>
Wenn ich den obigen Code ausführen würde, würde ich Folgendes erhalten: < /p>
2025-02-14 00:00:20.222990,6143.50,1,32182,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32183,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222992,6143.50,1,32184,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222993,6143.50,1,32185,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32186,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222992,6143.50,1,32187,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222993,6143.50,1,32188,6143.25,6143.50,271611390,C,43,01,1,14
< /code>
Dann hätte ich eine DateTime -Überlappung. Ich möchte das bekommen. Dann gibt es keine überlappende DateTime. < /P>
2025-02-14 00:00:20.222990,6143.50,1,32182,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222991,6143.50,1,32183,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222992,6143.50,1,32184,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222993,6143.50,1,32185,6143.25,6143.50,271611389,C,43,01,1,14
2025-02-14 00:00:20.222994,6143.50,1,32186,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222995,6143.50,1,32187,6143.25,6143.50,271611390,C,43,01,1,14
2025-02-14 00:00:20.222996,6143.50,1,32188,6143.25,6143.50,271611390,C,43,01,1,14
< /code>
Irgendwelche Ideen, wie man es erledigt? Danke

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post