Language

Language/Python

[python] merge_asof 사용하기 (범위 지정한 left join) - pandas

merge_asof 사용하기 pandas.merge_asof()는 시간을 몇만배로 단축시킬 수 있는 굉장히 유용한 함수이다. 홈페이지에 보면, This is similar to a left-join except that we match on nearest key rather than equal keys. Both DataFrames must be sorted by the key 라고 나와있는데 설명처럼 left join과 유사하다. 파라미터도 join과 비슷하게 left, right, on, left_on, right_on, by, suffixes, tolerance 등이 있다. 기본적인 파라미터는 직관적으로 이해할 수 있다고 하면 merge_asof만의 특징적인 파라미터는 아래와 같다. 1. suffi..

Language/Python

[python] 엑셀 여러 시트 한 번에 읽기 - pandas

엑셀의 여러 시트 한 번에 읽기 pandas로 엑셀을 읽을 때 default로는 첫번째 시트를 읽는다. 따라서 여러 시트를 한번에 읽고 싶을 때는 파라미터를 바꾸고 코드도 추가해야 한다. 예시 코드 df = pd.read_excel(path, sheet_name=None) df = pd.concat([value.assign(sheet_source=key) for key,value in df.items()], ignore_index=True) sheet_name 이라는 파라미터는 몇번째 시트를 읽을거냐 인데 따로 지정해주지 않으면 첫번째 시트를 읽기 때문에 전체를 읽어주기 위해선 None 으로 지정해줘야 한다. 그러나 이렇게 되면 데이터프레임 형태가 아닌 딕셔너리 형태가 되기 때문에 이를 concat 해줘..

Language/Python

[python] 특정 열의 데이터를 나눠서 행으로 추가하기 - pandas

dfsplit = dfresult['val'].str.split('\n').apply(lambda x: pd.Series(x)) dfsplit2 = dfsplit.stack().reset_index(level=1, drop=True) dfrow = pd.merge(pd.DataFrame(dfsplit2), dfresult, left_index=True, right_index=True, how='left').drop('val', axis=1) dfrow.rename(columns={0:'value'}, inplace=True) dfrow = dfrow[['opid','dt','value']]

Language/Python

[python] 문자 제거하기 (부분 일치 / 완전 일치) - pandas

특정 문자 제거하기 replace 함수를 쓰면 문자를 제거하거나 변경할 수 있는데, 데이터프레임 형태와 시리즈 형태에서의 쓰임이 약간 다르다. 오늘은 데이터프레임에서의 문자 제거 및 대체에 대해서 알아보자. 1. 부분일치 regex=True 파라미터를 추가함으로써 해당 문자가 포함되어 있으면 문자가 대체된다. df.replace('(|\s|희석|확인함)','', regex=True, inplace=True) df.replace('(?i).*(fibrin|citrate).*', '', regex=True, inplace=True) 참고로 (?i)를 추가하면 대소문자 상관없이 replace를 적용될 수 있다. 2. 완전일치 regex=True 없이 작성하면 된다. df.replace('.', '', inpl..

Language/Python

[python] 컬럼명 한번에 바꾸기 - pandas

데이터 프레임 컬럼명 한 번에 바꾸기 컬럼명을 바꿔야 하는 컬럼이 여러 개인 경우 코드가 지저분해질 수 있기 때문에 난 아래와 같이 작성한다. 예시 코드 result.rename(columns={name: name-date)//pd.Timedelta(days=1) for name in set(result.columns)}, inplace=True) result라는 데이터프레임에서 컬럼명을 바꿀 때 rename이라는 함수를 사용한다. 그리고 그 안에서 딕셔너리 형태로 columns 이름을 지정하는데 for문을 이용하여 한번에 바꿔줄 수 있다.

Language/Python

[python] groupy 문자열 합치기

groupby로 문자열 합치기 groupby는 보통 통계 낼 때 많이 쓰지만 문자열 자체를 합칠 때도 쓸 수 있다. 합칠 때 ,나 / 혹은 띄어쓰기로도 합칠 수 있으니 상황에 맞게 중간자를 선택하면 된다. 예시 코드 data.groupby(['hid','date'], as_index=False).agg(lambda x: ','.join(set(x)))

향식이
'Language' 카테고리의 글 목록 (3 Page)