zacznę z ramki danych jaksort_by zepsute w pandach> = 0.18.0?
print(df)
int float _i
1 2 2.000000e+00 1
3 3 3.000000e+00 3
2 3 4.000000e+00 2
4 -9223372036854775808 -1.797693e+308 4
0 -9223372036854775808 1.000000e+00 0
Jeśli używam sort_values
sortować według dwóch kolumn dostanę wyjście można zobaczyć poniżej. Tak więc wydaje się, że sort_values
nic nie robi. Jeśli tylko jedna nazwa kolumny działa, a sposób, w jaki go używam działał w poprzednich wersjach pand. Czy są jakieś zmiany w pandach, o których nie wiem?
print(df.sort_values(["int", "float"]))
int float _i
1 2 2.000000e+00 1
3 3 3.000000e+00 3
2 3 4.000000e+00 2
4 -9223372036854775808 -1.797693e+308 4
0 -9223372036854775808 1.000000e+00 0
W pand 0.17.0
uzyskać:
print(df.sort_values(["int", "float"]))
int float _i
4 -9223372036854775808 -1.797693e+308 4
0 -9223372036854775808 1.000000e+00 0
1 2 2.000000e+00 1
3 3 3.000000e+00 3
2 3 4.000000e+00 2
Oprócz tego, najwyraźniej jeśli zamienisz nazwy dwóch kolumn, otrzymasz dwa różne o/ps ('v0.19.1') –
Widzę to również z 0.18.1. –
OK, widzę problem, wygląda na to, że duża ujemna wartość int zrzuca mechanizm sortowania, sortowanie na kolumnie pływającej działa poprawnie i zgodnie z oczekiwaniami – EdChum