Ich habe ein kleines eigenartiges Problem. Ich habe einen sehr großen Datenrahmen, den ich zu probieren versuche.Pandas, die jeden n-ten Wert oder den nächsten passenden Wert zum n-ten Wert abtastend
Meine Daten sieht wie folgt aus etwas (zwei Spalten x und y):
x,y
1,'a'
1,'b'
1,'c'
3,'a'
3,'b'
3,'c'
6,'a'
6,'b'
6,'c'
I auf den Wert von 'x' basiert probieren möchten. Ich möchte eine Probe von allen 32 x Werten (basierend auf der Änderung in x, also möchte ich einmal zwischen 1 und 32 Probe, auch wenn es nur einen Wert von x zwischen 1 und 32 gibt).
Ich wollte etwas tun wie: df[df['x'] % 32 == 0]
. Das Problem ist, dass die Werte von x nicht notwendigerweise gleichmäßig beabstandet sind (sie sind zwar "ungefähr", aber nicht immer - wie im Beispiel angegeben). Wenn beispielsweise alle Werte von x in einem bestimmten Teilproblem ungerade sind, wird die obige Abtastung einen leeren Datenrahmen zurückgeben. Effektiv möchte ich einmal alle 32 'xs abtasten, oder nehme den nächstliegenden Wert zum 32. Wert (es ist akzeptabel, am nächsten zu kommen - zum Beispiel, wenn der nächste verfügbare Wert in Ordnung ist), wenn kein solcher Wert existiert.
Also, wenn ich eine Reihe von X [0, 10, 32, 39, 64, 70, 73, 74, 97, 100, 110, 129]
hätte, würde ich gerne die Zeilen mit x-Werten entsprechen [0, 32, 64, 97, 129]
.
Idealerweise könnte ich diese Operation auch vektorisieren, da die Datenrahmen oft ziemlich groß sind.