반응형
Pandas 변수 정렬하기
Python에서 데이터 핸들링시 가장 많이 이용하는 Pandas 패키지를 이용하여 변수를 정렬하는 예제입니다. 예를 들어 아래와 같은 데이터셋이 있다고 합시다.
cluster org time
1 a 8
1 a 6
2 h 34
1 c 23
2 d 74
3 w 6
cluster org time
1 a 8
1 a 6
2 h 34
1 c 23
2 d 74
3 w 6
출처: http://3months.tistory.com/195 [Deep Play]
출처: http://3months.tistory.com/195 [Deep Play]
import pandas as pd data = pd.DataFrame({"cluster" : [1,1,2,1,2,3], "org":['a','a','h','c','d','w'], "time":[8,6,34,23, 74,6]})
출처: http://3months.tistory.com/195 [Deep Play]
import pandas as pd data = pd.DataFrame({"cluster" : [1,1,2,1,2,3], "org":['a','a','h','c','d','w'], "time":[8,6,34,23, 74,6]})
출처: http://3months.tistory.com/195 [Deep Play]
이를 pandas DataFrame 객체로 읽기 위해서는 아래와 같은 구문으로 읽으면 됩니다.
import pandas as pd data = pd.DataFrame({"cluster" : [1,1,2,1,2,3], "org":['a','a','h','c','d','w'], "time":[8,6,34,23, 74,6]})
이후에는 DataFrame 객체에 있는 sort_values를 호출하면 해당 변수에 대해 정렬을 할 수 있습니다. ascending 파라미터는 오름차순으로 정렬할지 여부를 결정합니다. 또한 여러개의 변수에 대해서 정렬하고 싶으면 list 자료구조에 변수를 넣어주기만 하면 됩니다.
data = data.sort_values(["time"], ascending=[False])
cluster | org | time | |
---|---|---|---|
4 | 2 | d | 74 |
2 | 2 | h | 34 |
3 | 1 | c | 23 |
0 | 1 | a | 8 |
1 | 1 | a | 6 |
5 | 3 | w | 6 |
그러면 이와같이 결과가 나오는데 인덱스가 뒤죽박죽이 되어있다는 것을 알 수 있습니다. 기존 데이터셋의 인덱스를 그대로 갖고 있는 것입니다. 이로인해 plot을 할 때 문제가 생길 수 있으므로 인덱스를 초기화 하는 작업을 해줍니다. default는 drop=False인데 이렇게 하게 되면 기존의 인덱스가 하나의 컬럼으로 남게 됩니다. 많은 경우 기존의 인덱스는 필요없으므로 drop=True로 설정해줍니다.
data = data.reset_index(drop=True)
cluster | org | time | |
---|---|---|---|
0 | 2 | d | 74 |
1 | 2 | h | 34 |
2 | 1 | c | 23 |
3 | 1 | a | 8 |
4 | 1 | a | 6 |
5 | 3 | w | 6 |
반응형
'Tools > Python' 카테고리의 다른 글
Python - sklearn LabelEncoder, OnehotEncoder 사용 (0) | 2017.11.01 |
---|---|
Python - 폴더 파일 리스트 가져오기 (4) | 2017.10.31 |
Python - Pandas 그룹별 평균 구하기 (2) | 2017.10.24 |
Python으로 빈도표 만들기 (Pandas Crosstab) (0) | 2017.10.19 |
Python - 강화학습 Q-learning on Non-deterministic World (1) | 2017.09.19 |