반응형
팬더 데이터 프레임을 인덱스별로 정렬하는 방법은?
다음과 같은 DataFrame이 있을 경우:
import pandas as pd
df = pd.DataFrame(1, index=[100, 29, 234, 1, 150], columns=['A'])
인덱스 및 열 값의 각 조합을 그대로 사용하여 인덱스별로 이 데이터 프레임을 정렬하려면 어떻게 해야 합니까?
데이터 프레임은 다음과 같습니다.sort_index
기본적으로 복사본을 반환하는 메서드입니다.통과하다inplace=True
제자리에서 작동합니다.
import pandas as pd
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df.sort_index(inplace=True)
print(df.to_string())
다음을 제공:
A
1 4
29 2
100 1
150 5
234 3
조금 더 콤팩트한:
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)
참고:
sort
사용되지 않음, 대체됨sort_index
이 시나리오에 대해서는- 사용하지 않는 것이 좋습니다.
inplace
보통 읽기가 더 힘들고 연쇄를 막기 때문입니다.여기 답변에서 설명 참조: 팬더: 드롭나 후 제자리 이름 변경을 위한 특이한 성능 저하
DataFrame 인덱스에 이름이 있으면 다음을 사용할 수 있습니다.sort_values()
이름으로 분류하는 것도 가능합니다.예를 들어 인덱스 이름이 지정된 경우lvl_0
, 이 이름으로 정렬할 수 있습니다.이 특정한 경우는 데이터 프레임이 a로부터 얻어지면 일반적입니다.groupby
아니면.pivot_table
작동.
df = df.sort_values('lvl_0')
인덱스에 이름이 있는 경우 인덱스와 열 값을 모두 기준으로 정렬할 수도 있습니다.예를 들어, 다음은 인덱스와 열을 기준으로 정렬합니다.A
값:
df = df.sort_values(['lvl_0', 'A'])
MultiIndex 데이터 프레임이 있는 경우 다음을 사용하여 인덱스 레벨을 기준으로 정렬할 수 있습니다.level=
매개 변수.예를 들어 내림차순으로 두 번째 레벨을 정렬하고 오름차순으로 첫 번째 레벨을 정렬하려면 다음 코드로 정렬할 수 있습니다.
df = df.sort_index(level=[1, 0], ascending=[False, True])
인덱스에 이름이 있으면 다시 호출할 수 있습니다.sort_values()
. 예를 들어 인덱스별로 다음 정렬'lvl_1'
그리고.'lvl_2'
.
df = df.sort_values(['lvl_1', 'lvl_2'])
언급URL : https://stackoverflow.com/questions/22211737/how-to-sort-a-pandas-dataframe-by-index
반응형
'source' 카테고리의 다른 글
성공적으로 로그인한 후 스프링 부트가 현재 페이지로 리디렉션됨 (0) | 2023.09.09 |
---|---|
시간대별 또는 10분 단위로 시간을 분류하려면 어떻게 해야 합니까? (0) | 2023.09.09 |
사용자가 브라우저 기록으로 돌아갈 수 있는지 여부를 확인하는 방법 (0) | 2023.09.09 |
고유 색인 또는 고유 키? (0) | 2023.09.09 |
SQLPlus 스크립트를 통과하지 못한 매개 변수의 기본값 (0) | 2023.09.09 |