pandas(33)
-
Tabular) 좋은 피처 만드는 전처리 방법 정리해보기 (preprocessing)
정형 데이터를 딥러닝에 사용할 때 임베딩하는 방법에 대해서 정리해보고자 한다. 흔히 아는 머신러닝과 딥러닝의 차이를 이런 식으로 표현한다. (물론 딥러닝은 머신러닝의 부분집합이긴 해서 이렇게 구분하는 게 맞지는 않기는 한 것 같다) 여기서 말하는 머신 러닝은 흔히 이야기하는 tree 계열 알고리즘이나 회귀분석 같은 통계 기반의 방법론들을 생각해 주면 될 것 같다. 정형데이터 AI 모델 개발 방식 말하고자 하는 것은 흔히 딥러닝을 써서 얻을 수 있는 기대효과는 알아서 데이터에 대한 정보를 추출(feature extraction)할 수 있다는 믿음하에 딥러닝 방법론을 많이 사용하게 된다. 정형데이터 AI 모델 개발 방식 트렌드 크게 현재 데이터로 많이 사용하는 것이 tabular, image, text, g..
2023.10.04 -
Python) pyarrow 다뤄보기
2022.11.26 - [분석 Python/구현 및 자료] - Python) pyarrow 다뤄보기 2022.12.21 - [분석 Python/구현 및 자료] - Python) pyarrow 사용 방법 Apache Arrow란? (https://realsalmon.tistory.com/21) 직렬화(Serialization)란? (https://realsalmon.tistory.com/21) Zero-Copy 직렬화 Pyarrow란? 아파치 애로우(Apache Arrow)라는 메모리 내 분석을 위한 개발 플랫폼인데, 빅데이터를 빠르게 처리하고 이동할 수 있도록 하는 일련의 기술을 제공하는 라이브러리를 파이썬 PyArrow를 통해 구현할 수 있다. 기존의 pandas로 용량이 큰 csv파일을 로드하면 시간..
2022.11.26 -
Python) datetime64[ns]로 변환하는 방법
df['timestamp'] = pd.to_datetime(df.timestamp).dt.tz_localize(None) https://stackoverflow.com/questions/62917882/convert-datetime64ns-utc-pandas-column-to-datetime convert datetime64[ns, UTC] pandas column to datetime I have a dataframe which has timestamp and its datatype is object. 0 2020-07-09T04:23:50.267Z 1 2020-07-09T11:21:55.536Z 2 2020-07-09T11:23:18.015Z 3 2020-07-09T04:03:28.581Z 4 202..
2022.10.10 -
[Pandas][꿀팁] string 데이터를 pandas data frame으로 바꾸기
매번 csv나 특정 파일로 떨꾸는 것이 귀찮을 때 사용할 수 있는 방법 공유합니다. :) 매번 read csv하려고 파일 옮겨서 하기 귀찮을 때 메모장에 있는 텍스트를 가져오거나, 엑셀에 있는 것을 복사에서 붙여 넣어서 사용할 수 있어서, 빠르게 검증하고자 할 때 유용합니다. :) 구현 아래처럼 특정 패턴으로 되어 있는 파일을 복사해서 붙여 놓고, 아래 명령어를 실행하면 됩니다. []에 있는 부분을 object 패턴에 맞게 변경해주면 됩니다. from io import StringIO import pandas as pd pd.read_csv(StringIO( [object] ),sep= [sep] ) 예시 from io import StringIO t = """ COLACOLBCOLCCOLD 1234 5..
2022.09.09 -
Python) Pandas read_csv 인코딩 확인하는 방법 소개
파이썬에서 csv를 읽을 때 가장 큰 이슈 중에 하나는 가끔 인코딩이 안 맞아서 헤매는 경우가 많다. 이 경우 일반적으로 윈도우면 cp949 리눅스면 utf-8 대충 아는 식으로 하게 되면 대부분은 맞지만 특이한 것들이 나오는 경우가 있다. 이 방법은 리눅스에서만 가능할 것 같지만 소개한다. 리눅스 바로 다음 명령어를 사용하면 된다. (u.item이라는 파일이 있다고 가정) file -i u.item u.item: text/plain; charset=iso-8859-1 그럼 아래처럼 charset이 나오게 된다. 이걸 사용해서 읽을 때 인코딩으로 정해주면 된다. import pandas as pd df = pd.read_csv("u.item", sep="|", encoding="iso-8859-1") ..
2022.08.30 -
[Pandas] Pandas의 Filter 함수를 사용하여 특정 컬럼(변수) 제외하기
row / test / key가 column 이름에 들어간 것들은 제외하는 regular expression data를 아래와 같이 생성 np.random.seed(1234) cols = [f"{random()}_{i}" for i in np.arange(20)] array = np.random.normal(size=(100,20)) data = pd.DataFrame(array , columns = cols) data ['col_0', 'col_1', 'test_2', 'row_3', 'type_4', 'type_5', 'type_6', 'row_7', 'col_8', 'row_9', 'col_10', 'row_11', 'test_12', 'test_13', 'col_14', 'test_15', 'ty..
2020.12.15 -
[TIP / Pandas] Change Columns Order (열 순서 바꾸기)
열 순서 바꾸기def change_column_order(data , cols:list , positions:list) : for position , col in zip(positions , cols) : pop_ = data.pop(col) data.insert(position, pop_.name, pop_.values) return data data = change_column_order(data , cols =["key"], positions=[0])
2020.10.28 -
[Python] Pandas를 활용하여 엑셀 시트별로 만들기
한 엑셀 파일에 여러 데이터를 담아두고 싶을 때 사용할 수 있다. 우리가 엑셀을 사용할 때 여러 엑셀 시트를 만드는 것과 동일하게 생각하면 됨. 어려운 것은 아니지만, 까먹을 수 있으므로 남겨둔다. with pd.ExcelWriter(f"./../../data/processed/hw/info.xlsx") as writer: dataset = [###] for idx , data in enumderate(datasets) : #### data.to_excel(writer, sheet_name=str(idx), index=False) 추가적으로 이미지 넣기 import xlsxwriter # Create an new Excel file and add a worksheet. workbook = xlsxwrit..
2020.10.20 -
[Python] pandas에서 데이터 더 빠르고 가볍게 읽는 방법
This is because when a process requests for memory, memory is allocated in two ways: Contiguous Memory Allocation (consecutive blocks are assigned) NonContiguous Memory Allocation(separate blocks at different locations) Pandas는 RAM에 데이터를 적재하기 위해서 Contiguous Memory 방식을 사용한다. 왜냐하면 읽고 쓰는 것은 디스크보다 RAM에서 하는 것이 더 빠르게 때문이다. Reading from SSDs: ~16,000 nanoseconds Reading from RAM: ~100 nanoseconds 몇 가지 ..
2020.10.07 -
[Pandas] 조건걸고 새로운 컬럼 추가하기
https://signing.tistory.com/55#comment5838430 [Tips] 조건걸고 새로운 컬럼 추가하기 in Pandas DataFrame R에서는 대부분의 핸들링을 자유롭게 하던 나는 파이썬으로 그 작업들을 하나씩 진행하고자 한다. 분석을 진행하기 위해서 데이터를 내가 원하는 모양으로 맞춰줄 필요가 있다. 현재 내가 분석� signing.tistory.com 기존 signing님의 방법 (List Comprehension) iris['new_column'] = ['Large' if t else 'Small' for t in list(iris['Sepal.Length'] > 4)] 사전을 활용하여 값 변환해주기 iris = sns.load_dataset("iris") dict_ = ..
2020.08.12 -
[Pandas] data type별로 컬럼들을 사전 형태로 모으기
판다스에서 data type 별로 모으기 위해서 여러 가지를 시도할 수가 있다. data.sample(50).select_dtypes("float").columns.tolist() data.sample(50).select_dtypes("object").columns.tolist() 하지만 이런 것 말고 타입별로 한꺼번에 모으는 작업을 하고 싶다면 아래와 같은 함수를 사용하면 된다. def make_type_dct(df) : import re type_dct = {"float" : [], "int" : [], "object" :[] , "category" : []} r = re.compile(r"([A-Za-z\s]+)") [ type_dct[r.search(str(k)).group(1)].extend(l..
2020.07.23 -
[Pandas] 여러개의 컬럼 하나로 합치기
여러개의 변수들을 하나로 합치는 것에 대한 심플 버전은 다음과 같이 apply(axis=1)을 방향으로 합칠 수 있음. cols = ['sex', 'day', 'smoker'] tip['combined'] = tip[cols].apply(lambda row: '_'.join(row.values.astype(str)), axis=1) 복합적으로 다양한 것을 적용해본 결과는 다음과 같음 tip = sns.load_dataset("tips") def make_original(x) : xs = x.dropna() xs_np = xs.values first = '-'.join(xs_np.astype(str)[:-3]) original = first + "@" + str(xs_np[-2]) + "_" + str(i..
2020.07.22