Language/Python

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/Python

[python] 히스토그램 그리기 - matplotlib

matplotlib 라이브러리를 이용하여 히스토그램을 그릴 수 있다. 파이썬에서 그래프를 그리는 것은 참 내 맘 같지 않기 때문에 여러 시도를 안 해 볼 수 없G,, 그래서 잊지 않고자 이번에 삽질한 코드를 기록하려고 한다. import csv import pandas as pd import matplotlib.pyplot as plt # 그래프 사이즈를 조절할 수 있다. 앞이 가로, 뒤가 세로 plt.figure(figsize=(16, 3)) # x축에 범위를 정할 수 있다. plt.xlim([-100, 100]) # 어떤 데이터의 분포를 보고싶은지 넣고, 히스토그램 막대가 몇개로 표현됐으면 하는지 bins라는 파라미터에 넣어주면 된다. plt.hist(labs['dt_date'], bins=5000)..

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