-
Pandas 1부Learn/머신러닝 2021. 5. 25. 01:02
pandas는 벌써 쓴지 4년정도 되어가니 기초적인건 생략하자.
잘 안써왔는데 앞으로 쓰면 좋을 것들
info -> null 분포 대략적으로 보기 좋은듯
value_counts --> 생각없이 groupby.count 때려왔는데 미련한 짓이었다.
[drop]
drop은 딱히 안썼던지라 왜 그럴까 생각해봤는데,
작업하면서 row를 딱히 지울일이 없고 (보통 조건을 걸어서 걸러내니까)
col을 지울떄는 del을 써왔다는 사실을 인지했다.
참고로 drop vs del은 큰 차이는 없는데 재밌는 stackoverflow 글을 발견했다.
결론은 drop이 del보다 더 빠르다는것. 앞으론 drop을 써보자.
https://stackoverflow.com/questions/47426089/python-del-vs-pandas-drop/51194789
python del vs pandas drop
I know it might be old debate, but out of pandas.drop and python del function which is better in terms of performance over large dataset? I am learning machine learning using python 3 and not sure...
stackoverflow.com
참고로 drop 사용시 inplace를 아래와 같이 사용하면 안된다. (그럴일 없어보이긴 하다만..)
inplace=True면 Null이 반환된다.
drop_result = df.drop(['column_a', 'column_b', 'column_c'], axis=1, inplace=True)
[ix, loc, iloc]
이건 쓸때마다 헷갈리는데 이번 기회에 확실히 해두자.
요약: loc는 명칭 기반, iloc는 위치 기반, ix는 명칭&위치 둘 다인데 deprecated.
아래 그림과 같을 경우 ix[0,1]은 에러를 일으킨다.
왜냐면 위치가 0인건 있는데 인덱스가 0인건 없기 때문이다.
쓰는 사람 입장에선 헷갈리기 쉽고, 그래서 deprecated 되고 iloc / loc가 생겼다.
사실 헷갈린다고 하는데 아래는 좀 이상한(?) 상황이고,
일반적인 대부분의 상황에서는 ix도 편하다!
강의에서는 가능하면 boolean index를 쓰길 권장한다.
하지만 분석하다보면 loc, iloc를 꼭 만나게 되니 알아두자. (stackoverflow에서 쓰면 이해는 해야하지 않는가)
[Boolean indexing]
사실 불린 인덱싱이야 판다스를 쓴다면 질리도록 쓰게 되니 기본 방식은 생략.
다만 조건문을 변수로 선언해서 쓸 수 도 있다.
condition_1 = df['a'] > 0 condition_2 = df['b'] == 1 condition_3 = df['c'] > 100 df_filtered = df[condition_1 & condition_2 & condition_3]
사실 너무나 당연한건데 잘 안쓰고 있었는데 가독성을 위해 좀 써야겠다.
'Learn > 머신러닝' 카테고리의 다른 글
[Anomaly Detection] Isolation Forest (0) 2022.08.11 [Anomaly Detection] Local Outlier Factor (LOF) (0) 2022.08.10 [Anomaly Detection] 개요, 확률 분포 기반 (0) 2022.08.10 Pandas 2부 (0) 2021.05.26 ndarray (0) 2021.05.07