Pandas
1) 특정 컬럼에서 특정 값을 가지는 행을 전체적으로 골라서 삭제하고 싶을때
데이터프레임명.drop(조건).index
inplace = True 로 하면 원본 데이터프레임에 삭제가 반영됨
df.drop(df[df["에너지원별(1)"] == "합계"].index , inplace=True)
▶ 에너지원별(1)의 컬럼에서 합계인 부분의 행 전체 삭제
2) 특정 행의 값을 기준으로 백분율 값 구하기
연도별로 각각의 합계에 대한 에너지원의 백분율을 구하고자한다.
df_en_tot = df_en.groupby("연도")["발전량(GWh)"].sum().reset_index()
df_merged = pd.merge(df_en, df_en_tot, on='연도', suffixes=('', '_total'))
df_merged['발전량_백분율'] = (df_merged['발전량(GWh)'] / df_merged['발전량(GWh)_total']) * 100
df_merged
▶ 우선 합계가 없는 데이터프레임을 통해 연도별 합계를 구해서 합계 컬럼을 만든다.
이때 연도별로 groupby 하고 발전량의 sum()을 통해 합계를 구한다음 reset_index() 로 현재 인덱스를 열로 추가하고, 새로운 정수 인덱스를 할당한다.
merge를 통해 열 합치기를 진행한다. 합계가 없는 데이터프레임과 합계 컬럼을 합친다. suffixes = ('' , '_total') 을 통해 열이름 충돌을 방지한다. suffixes는 데이터프레임을 병합할 때, 겹치는 열 이름이 있을 경우 각 데이터프레임에서 해당 열의 이름에 어떤 접미사를 붙일지 지정하는 파라미터이다. 첫번째에는 접미사를 붙이지 않고 겹치면 _total을 붙이라는 의미이다.
합쳐진 df_merged 데이터 프레임에 발전량 백분율 컬럼을 추가한다. 이때 합계 컬럼의 값으로 발전량을 나눈뒤에 100을 곱한다.
위 사진과 같이 변경되었다.
3) 열 삭제
Unnamed: 0 열을 삭제하는 구문
df_re = df_re.drop(["Unnamed: 0"],axis=1)
4) 데이터 안의 , 기호 없애기
해당 컬럼을 지정해주고 str.replace를 통해 변환해주면 된다.
df_temp["등록대수"] = df_temp["등록대수"].str.replace("," , "")
df_temp
Plotly
1) barplot 속성
- x, y: 각각 X 축과 Y 축에 사용될 데이터를 지정합니다.
- name: 그래프에 표시될 범례에 사용될 이름을 지정합니다.
- orientation: 'h'로 설정하면 수평 바 차트를 생성할 수 있습니다.
- text: 각 바에 표시되는 텍스트를 설정합니다.
- hovertext: 각 바에 대한 마우스 오버 시 표시될 텍스트를 설정합니다.
- hoverinfo: 마우스 오버 시 표시될 정보를 설정합니다. 'x', 'y', 'text' 등의 속성을 포함할 수 있습니다.
- marker: 바의 색상, 두께 등을 설정합니다.
- opacity: 바의 투명도를 설정합니다.
- bargap: 바 간의 간격을 설정합니다.
- bargroupgap: 바 그룹 간의 간격을 설정합니다.
- width: 각 바의 너비를 설정합니다.
2) x 축에 연도 모두 표시
기본값으로는 연도가 2년 간격으로 나오는데 이를 전체 연도가 나오게 하려면
fig.update_xaxes를 통해 변경한다.
fig.update_xaxes(type='category')
3) 제목 위치 정렬하기
제목을 x 축 기준 가운데로 정렬
fig.update_layout(
title_text="재생에너지 발전량 백분율", # 원하는 제목으로 수정
title_x=0.5, # 0 ~ 1 사이의 값을 지정하여 title을 x축 방향으로 가운데로 정렬
title_y=0.95 # 0 ~ 1 사이의 값을 지정하여 title을 y축 방향으로 위치 조절
)
4) 그래프의 크기 조정
그래프 너비 , 높이 조정
fig.update_layout(
width=800, # 원하는 너비로 수정
height=600, # 원하는 높이로 수정
)
'DB' 카테고리의 다른 글
데이터 프레임 - 합치기 / 결측치 / 중복 / 이상치 처리 (2) | 2023.12.05 |
---|---|
[데이터 시각화] - 원형그래프 / 워드클라우드 (5) | 2023.12.05 |
[웹크롤링] - 다음 영화 사이트 웹크롤링 (8) | 2023.12.04 |
[데이터실습](2)데이터 전처리/시각화(matplotlib/pyplot/seaborn) (3) | 2023.11.30 |
MVC 는 무엇인가? ORM은 무엇인가? (2) | 2023.11.29 |