판다스

Language/Python

[python] 엑셀 파일 내 여러 시트에 저장하기 - pandas

오늘은 python을 이용하여 excel 여러 시트의 저장하는 방법을 알아보도록 하자. 시트별로 저장하는 기능은 pandas 라이브러리를 이용하면 쉽게 적용할 수 있다. 예제를 통해서 보면 간단하다. 하나의 엑셀 파일 내 여러 시트에 저장 import pandas as pd writer = pd.ExcelWriter(SAVE_DIR, engine='openpyxl') # SAVE_DIR: excel 파일을 저장하고자 하는 경로 # dfresult: 저장하고자 하는 데이터 dfresult1.to_excel(writer, sheet_name='dfresult1의 시트명') dfresult2.to_excel(writer, sheet_name='dfresult2의 시트명') dfresult3.to_excel(w..

Language/Python

[python] 특정 조건의 행만 추출하기 - pandas

특정 조건의 행만 추출하기 특정 조건의 행만 추출하고 싶을 땐 apply라는 함수를 쓰면 된다. 특정 조건을 만드는 함수를 정의하고 해당 함수명을 넣어주는데 이 때 함수 return 값을 True, False가 되게끔 선언 해주면 True인 행들만 추출된다. 예시 코드 df = df[df['value'].apply(is_numeric)]

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

여러 문자열을 포함하는 모든 행 검색하기 어떤 문자열을 포함하는 행을 찾기 위해선 contains라는 함수를 사용해야 한다. 만약 여러 문자열을 포함하는 모든 행을 찾고 싶다면 어떻게 해야할까? 다섯개 정도까지는 직접 &와 |를 이용해서 코드를 쓸 수 있지만 그 이상으로 넘어가면 지저분해진다. 따라서 join함수를 이용해 간단하게 써보자. 예시 코드 import pandas as pd # 포함하고자 하는 문자열 리스트 생성 example_list = ['apple', 'red', 'peach', 'blue'] # 데이터프레임 생성 df = pd.DataFrame(data) # join함수를 이용하여 이어주고 contains 함수에 넣기 test = '|'.join(example_test) result =..

향식이
'판다스' 태그의 글 목록