프로그래밍 언어/Python
-
Pandas - 대용량데이터 전처리 꿀팁 (멀티인덱스, groupby, isin, select_dtypes)프로그래밍 언어/Python 2021. 2. 2. 14:12
# 대규모 데이터의 예시 소규모 데이터가 아닌 대용량 데이터를 다뤄보면, for 문으로 데이터를 정제하는 습관을 지양해야 할 필요성을 느낄 것이다. 또한, 변수의 저장도 최소한으로 다루어야 한다. Hadoop이나 쿠버네티스 같은 분산컴퓨팅을 하지않고, 오직 컴퓨터 1대로 대용량데이터 전처리를 진행해야 한다면 변수를 생성(초기화)하면 할 수록 RAM이 가득차서 에러가 뜰 것이며, for 문의 속도도 현저히 떨어진다. 왜냐면 파이썬은 메모리를 FLEX 하니까..! 필자 또한 부족하지만, 대용량 데이터를 다루며 깨달은 노하우를 공유하고자 한다. 큰틀은 아래와 같다. 1. Pandas 패키지를 최대한으로 이용하자 파이썬의 라이브러리는 대부분 C++로 만들어져 있다. Numpy, Tensor 같은 라이브러리 또한..
-
Pandas - 조건에 따라 각각 다른 값 넣기, 서로다른 데이터프레임 Key 기준으로 Merge(Join) 하기, 특정 index에 접근하여 값 바꾸기프로그래밍 언어/Python 2021. 1. 11. 14:35
어떤 DataFrame(df1)을 다른 DataFrame(df2)의 특정값에 따라 값을 각각다르게 변경해주고 싶을 때, 또는 index값에 따라 값을 변경해주고 싶을 때, 데이터베이스에서 사용하듯이 Key값으로 참조한값을 넣어주고 싶을 때, apply는 if와 else문을 엄청걸어야하고, iloc과 loc으로 접근해야겠다 했지만, iloc과 loc은 꺽쇠([ ])에 변수를 받아들이지 못하여 매번 늪에 빠져서 뻘짓을 했던 기억이 몇번 있어서, 저처럼 늪에 빠진분들을 살릴 수 있기를 희망하며 포스팅을 합니다. 더 간단한 코드가 있다면 언제든 피드백환영합니다. 분명 pandas에서 이런 괴로움을 덜어낼 라이브러리를 만들어놨을건데 말이죠.. (부탁드립니다. 고통을 덜어주세요.) # df1과 df2의 생성 # K..
-
Pandas - 조건에 맞는 컬럼 값 여러개 바꾸기프로그래밍 언어/Python 2020. 12. 24. 10:14
컬럼값을 바꿀 때, for 문으로 바꾸려고 하시는분들이 꽤 계실 것이다. 필자 또한 처음에 for문으로 일일이 바꾸어주었는데, 다른 프로그래밍 언어라면 그렇게 하겠지만, 파이썬은 진짜 웬만하면 다 만들어놓은게 많다. (그리고 만들어진 라이브러리들은 C++같은 저레벨언어로 만들어졌기 때문에 실행시간이 훨씬 빠르다.) 판다스를 사용한다 -> 판다스 객체에서 무엇인가 하고싶다 -> 판다스에서 제공할 것이다 이러한 흐름대로 의식을 진행시킨다면, 저처럼 개고생하는 일은 없으실 것이다. 이 포스팅에서는, 아래의 내용을 다룰 것이다. # Pandas 에서 조건에 맞는 컬럼에서 단일값 바꾸기 # Pandas 에서 조건에 맞는 컬럼에서 여러값 바꾸기 # Pandas 에서 조건에 맞는 컬럼에서 단일값 바꾸기 # 예시 데이..
-
파이썬 - 언더스코어 ( _ ) : Underscore프로그래밍 언어/Python 2020. 12. 17. 17:21
다른분들의 코드를 읽다보면 언더스코어( _ ) 때문에 당황하실법하다. 파이썬에서 Underscore는 다음과 같은 상황에서 사용된다고 한다. 1. 인터프리터(Intepreter)에서 사용될 때 - 마지막으로 사용한 값이 언더스코어에 자동저장된다. >>> 500 500 >>> _ 500 >>> _*5 2500 2. 값을 무시하고 싶을 때 # 해당 함수호출은 두개의 튜플을 반환하는데 X의 값만 필요할때, 이런식으로 사용한다. (X, _), (_, _) = tf.keras.datasets.mnist.load_data() # 반복문에서도 종종 볼수 있다. for _ in range(batchCount) : DoSomething() for key, _ in my_dictionary : DoSomething(key..
-
Python(파이썬) - 공분산행렬, 고유치 구하기(PCA 모듈 & 선형대수(np.linalg 모듈)), StandardScaler로 정규화하기, np.cumsum프로그래밍 언어/Python 2020. 12. 2. 14:44
# 예시 데이터셋 & Import Module # 데이터셋 정규화(Normalization) ※ 정규화란? 서로 다른 스케일(크기)를 가진 벡터(attribute, 위의 예시에서는 칼럼)들을 적절히 매만져주어 모든 벡터(feature)들이 같은 스케일선상에서 비교가능하게 만드는 것 ※ StandardScaler 서로 다른 스케일(크기)를 가진 벡터(attribute, 위의 예시에서는 칼럼)들을 평균을 0, 분산을 1로 변경하여, 모든 벡터(feature)들이 같은 스케일선상에서 비교가능하게 만드는 것 ※ 스케일러의 종류 StandardScaler, RobustScaler, MinMaxScaler, Normalizer 스케일러의 종류에 따라 스케일의 기준이 다르므로 한번 찾아보는 것을 추천 # 고유값과 고..