티스토리 뷰
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.
how to sort pandas dataframe from one column
Pandas 데이터프레임에서 하나의 열을 기준으로 정렬하는 방법
문제 내용
I have a data frame like this:
이렇게 데이터프레임이 있습니다.
print(df)
0 1 2
0 354.7 April 4.0
1 55.4 August 8.0
2 176.5 December 12.0
3 95.5 February 2.0
4 85.6 January 1.0
5 152 July 7.0
6 238.7 June 6.0
7 104.8 March 3.0
8 283.5 May 5.0
9 278.8 November 11.0
10 249.6 October 10.0
11 212.7 September 9.0
As you can see, months are not in calendar order. So I created a second column to get the month number corresponding to each month (1-12). From there, how can I sort this data frame according to calendar months' order?
보시다시피, 월(months)이 달력 순서대로 나열되어 있지 않습니다. 그래서 각 월에 해당하는 월 번호(1~12)를 얻기 위해 두 번째 열을 만들었습니다. 이제 이 데이터프레임을 달력 월 순서에 따라 어떻게 정렬할 수 있을까요?
높은 점수를 받은 Solution
Use sort_values
to sort the df by a specific column's values:
sort_values를 사용하여 특정 열의 값을 기준으로 데이터프레임을 정렬하세요.
In [18]:
df.sort_values('2')
Out[18]:
0 1 2
4 85.6 January 1.0
3 95.5 February 2.0
7 104.8 March 3.0
0 354.7 April 4.0
8 283.5 May 5.0
6 238.7 June 6.0
5 152.0 July 7.0
1 55.4 August 8.0
11 212.7 September 9.0
10 249.6 October 10.0
9 278.8 November 11.0
2 176.5 December 12.0
If you want to sort by two columns, pass a list of column labels to sort_values
with the column labels ordered according to sort priority. If you use df.sort_values(['2', '0'])
, the result would be sorted by column 2
then column 0
. Granted, this does not really make sense for this example because each value in df['2']
is unique.
만약 두 개의 열을 기준으로 정렬하고 싶다면, 정렬 우선순위에 따라 열 라벨의 리스트를 sort_values에 전달하면 됩니다. df.sort_values(['2', '0'])을 사용하면 결과는 열 2를 기준으로 먼저 정렬된 다음 열 0을 기준으로 정렬됩니다. 하지만 이 예제에서는 df['2']의 각 값이 고유하기 때문에 이 방법은 별로 의미가 없습니다.
가장 최근 달린 Solution
Just adding a few more insights
추가적인 팁을 몇 가지 더 알려드립니다.
df=raw_df['2'].sort_values() # will sort only one column (i.e 2)
but ,
하지만,
df =raw_df.sort_values(by=["2"] , ascending = False) # this will sort the whole df in decending order on the basis of the column "2"
출처 : https://stackoverflow.com/questions/37787698/how-to-sort-pandas-dataframe-from-one-column
'개발 > 파이썬' 카테고리의 다른 글
리스트 앞에 값이나 리스트 추가하기 (0) | 2023.01.14 |
---|---|
판다스 데이터프레임에 특정 열이 있는지 확인하기 (0) | 2023.01.13 |
Python에서 파일을 리스트로 읽는 방법 (0) | 2023.01.12 |
폴더 내 모든 파일을 열 수 있는 방법 (0) | 2023.01.12 |
딕셔너리에서 key 이름을 변경하는 방법 (0) | 2023.01.11 |