데이터 프레임이 있고 모든 열을 내림차순 또는 오름차순으로 독립적으로 정렬하려고합니다.sort_values ()를 사용하여 pandas DataFrame의 모든 열을 개별적으로 정렬
import pandas as pd
data = {'a': [5, 2, 3, 6],
'b': [7, 9, 1, 4],
'c': [1, 5, 4, 2]}
df = pd.DataFrame.from_dict(data)
a b c
0 5 7 1
1 2 9 5
2 3 1 4
3 6 4 2
나는 이것에 대한 sort_values()를 사용하는 경우는 (나에게) 예상대로 작동 단 하나의 열 정렬하지 않습니다 내가 this 대답에서 솔루션을 사용하는 경우
foo = df.sort_values(by=['a', 'b', 'c'], ascending=[False, False, False])
a b c
3 6 4 2
0 5 7 1
2 3 1 4
1 2 9 5
내가 원하는 결과를 얻을 수 있습니다
bar = df.apply(lambda x: x.sort_values().values)
print(bar)
a b c
0 2 1 1
1 3 4 2
2 5 7 4
3 6 9 5
그러나 이것은 나에게 무거워 보입니다.
실제로 위의 sort_values() 예제에서 무슨 일이 일어나고 있으며 람다 함수없이 팬더 방식으로 데이터 프레임의 모든 열을 정렬 할 수 있습니까?
감사합니다. 하지만 더 짧고 numpy 가져 오기가 필요 없기 때문에 여전히'df.apply (lambda x : x.sort_values (). values)'를 선호합니다. –
이것에 대한 표준 판다 구조가 없습니까? ;) –
@CordKaldemeyer 'numpy'가져 오기를 피하기 위해 팬더를 사용할 때'numpy'를 피하기 위해서는 우선 순위가 없어야합니다. 왜냐하면 유장이 당신이 이미 수입 한'팬더 '를 수입하기 때문입니다. 실제로 'pandas' 네임 스페이스를 사용하면 jeszrael가 한 일을 정확하게 수행 할 수 있습니다. 'pd.DataFrame (pd.np.sort (df.values, axis = 0), index = df.index, columns = df.columns)' – piRSquared