Ich verarbeite einen Datenrahmen, der eine Spalte enthält, die eine Fehleranzahl enthält. Das Problem, das ich habe, ist der Zähler rollt nach 64k. Bei langen Läufen tritt der Rollover außerdem mehrmals auf. Ich brauche eine Methode, um diese Überläufe zu korrigieren und eine genaue Anzahl zu erhalten.Handhabung Wert Rollover in Datenrahmen
-2
A
Antwort
0
Ich bin nicht sicher, dass es richtig immer, aber lassen Sie uns versuchen:
# groups
g = df.groupby((df['count'].diff() < 0).cumsum())
# mapping cumulative summand
mp = df.groupby((df['count'].diff() < 0).cumsum(), as_index=False).max().shift(1).fillna(0)['count']
# math
for grp, chunk in g:
df['count'] += (df['count'].diff() < 0).cumsum().map(mp)
Original-DF:
In [416]: df
Out[416]:
count
0 0
1 1
2 2
3 3
4 4
5 5
6 0
7 1
8 2
9 3
10 4
11 0
12 1
13 2
14 3
15 4
16 5
17 6
18 7
19 8
Ergebnis:
In [414]: df
Out[414]:
count
0 0.0
1 1.0
2 2.0
3 3.0
4 4.0
5 5.0
6 5.0
7 6.0
8 7.0
9 8.0
10 9.0
11 9.0
12 10.0
13 11.0
14 12.0
15 13.0
16 14.0
17 15.0
18 16.0
19 17.0
Erläuterung:
Helfer zum Gruppieren (Monoton steigende Gruppen):
In [418]: (df['count'].diff() < 0).cumsum()
Out[418]:
0 0
1 0
2 0
3 0
4 0
5 0
6 1
7 1
8 1
9 1
10 1
11 2
12 2
13 2
14 2
15 2
16 2
17 2
18 2
19 2
Name: count, dtype: int32
Summand für jede Gruppe:
In [420]: df.groupby((df['count'].diff() < 0).cumsum(), as_index=False).max().shift(1).fillna(0)['count']
Out[420]:
0 0.0
1 5.0
2 4.0
Name: count, dtype: float64
bereits abgebildet Summanden - sie werden N
mal hinzugefügt werden (wo N
ist die Anzahl der Gruppen - 3
für dieses Beispiel):
In [421]: (df['count'].diff() < 0).cumsum().map(mp)
Out[421]:
0 0.0
1 0.0
2 0.0
3 0.0
4 0.0
5 0.0
6 5.0
7 5.0
8 5.0
9 5.0
10 5.0
11 4.0
12 4.0
13 4.0
14 4.0
15 4.0
16 4.0
17 4.0
18 4.0
19 4.0
Name: count, dtype: float64
Setup-Test DF:
df = pd.DataFrame({'count': np.arange(20)})
df.ix[6:10, 'count'] = range(5)
df.ix[11:19, 'count'] = range(9)
Verwandte Themen
- 1. Mehrere Datenrahmen Handhabung
- 2. Kann dbms_utility.get_time Rollover?
- 3. rollover Bilder
- 4. Rollover-Safe-Timer (Tick) Vergleiche
- 5. vergleichen Datenrahmen durch Wert
- 6. ersetzen Wert in Datenrahmen basierend auf einem anderen Datenrahmen
- 7. Wie Bild Rollover Javascript
- 8. Handhabung Jquery-u Autocomplete Label-Wert-Paare
- 9. Logback Rollover nicht passiert
- 10. Datenrahmen Spaltenname von Array-Wert
- 11. Pandas Datenrahmen, kopieren nach Wert
- 12. gsub in Spalten Wert im Datenrahmen
- 13. Wert der Zelle in Pandas Datenrahmen zuweisen
- 14. Datenrahmen DATETIME Wert Zeile füllt
- 15. Wert von anderem Datenrahmen ersetzen
- 16. Sortieren Pandas Datenrahmen von Wert
- 17. Festlegen der Rollover-Strategie in log4j2.properties
- 18. Javascript-Fehler im IE (Rollover)
- 19. Group Rollover-Effekte mit ActionScript3
- 20. ButtonBarButton benutzerdefinierte Rollover/Out-Ereignis
- 21. flex - timer gefeuert auf rollOver
- 22. Azure AD Signing Key Rollover
- 23. Klassen mit Javascript Rollover hinzufügen
- 24. Flackerndes gif auf Rollover div
- 25. Handhabung Datumsformat in schnellen
- 26. Handhabung Negation in Worte
- 27. Handhabung richtig in wit.ai
- 28. Signal in C Handhabung
- 29. Handhabung Deklination in iOS
- 30. Handhabung onNewIntent in Fragment