1. 범주형 데이터 frequency table(빈도표) 그리기
해당 내용은 이전 글에 정리해두었다.
https://egg-is-life.tistory.com/12
004. 사용한 코드 정리_기초통계 및 막대 그래프 코드 정리(1)
목차 1. 데이터 불러오기 및 열 이름 변경 2. 데이터 공란 채우기(NaN) 3. 데이터 frequency table(빈도표) 작성 1. 데이터 불러오기 및 열 이름 변경 문항 번호로 적혀 있던 열 이름을 어떤 항목인지 알
egg-is-life.tistory.com
final.stb.freq(['medicine_care'])
2. 데이터 전처리_데이터프레임 여러 개 합쳐서 엑셀로 불러내기
- 데이터 형태 변경(숫자형->문자형, 문자형->숫자형 등)
-조건에 해당하는 값 삭제하기
- 기존 데이터 값을 다른 값으로 바꾸기
- 데이터셋 이름 규칙적으로 지정하기
- 반복문을 통해 데이터프레임 합쳐서 엑셀로 출력
각각에 해당하는 코드는 주석달아서 메모했다.
variable = ['medicine_care', 'medicine_help', 'medicine_conv', 'medicine_func', 'nutrition_care', 'nutrition_help', 'nutrition_conv', 'nutrition_func', 'exercise_care', 'exercise_help', 'exercise_conv', 'exercise_func', 'kiosk_care', 'kiosk_help', 'kiosk_conv', 'kiosk_func', 'safety_relax', 'safety_help']
data = {'test' :[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]}
result = pd.DataFrame(data, index=[1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
#데이터 형태 변경(숫자형을 문자형으로 바꾸기 또는 문자형을 숫자형으로 바꾸기)
for m in variable:
final[m] = final[m].astype(int) #숫자형(int)으로 변경
final[m] = final[m].astype(str) #문자형(string)으로 변경
test1 = final['que'] == 1
final1 = final[test1]
test2 = final['que'] == 2
final2 = final[test2]
for k in variable:
#조건에 해당하는 값 삭제하기
idx_zero = final1[final1[k] == '0'].index #'k'의 값이 0이면 'idx_zero'에 저장해서
final1 = final1.drop(idx_zero) #해당 데이터에서 지운다.
#기존 데이터 값을 다른 값으로 바꾸기
#<데이터명.loc(조건, 열 이름)=원하는 값>을 사용하면 값이 변경된다.
final1.loc[(final1[k] == '1'), k] = '전혀아니다'
final1.loc[(final1[k] == '2'), k] = '아니다'
final1.loc[(final1[k] == '3'), k] = '보통이다'
final1.loc[(final1[k] == '4'), k] = '그렇다'
final1.loc[(final1[k] == '5'), k] = '매우그렇다'
idx_zero = final2[final2[k] == '0'].index
final2 = final2.drop(idx_zero)
final2.loc[(final2[k] == '1'), k] = '전혀아니다'
final2.loc[(final2[k] == '2'), k] = '아니다'
final2.loc[(final2[k] == '3'), k] = '보통이다'
final2.loc[(final2[k] == '4'), k] = '그렇다'
final2.loc[(final2[k] == '5'), k] = '매우그렇다'
for i in variable:
b = final1.stb.freq([i]) #빈도표 그리기
b['que'] = "1차"
c = final2.stb.freq([i])
c['que'] = "2차"
d = pd.concat([b,c]) #데이터 합치기
#데이터셋 이름 규칙적으로 지정하기
#반복문을 사용하여 나온 결과를 새로운 데이터셋으로 만들고 이름을 지정하고자 할 때,
#규칙적으로 데이터셋 이름을 지정하고 싶을 때가 있다.
#하나하나 데이터셋 이름을 지정하기 귀찮기 때문에, 아래 코드를 사용하면 데이터셋의 인덱스 값을 사용하여 이름을 간단하게 바꿀 수 있다.
globals()['result_{}'.format(variable.index(i))] = d #값 예시: result_1_ result_2, result_3, ...
#반복문을 통해 데이터프레임 합쳐서 엑셀로 출력
result = pd.concat([result.reset_index(drop=True), d.reset_index(drop=True)], axis=1)
print(d.head())
result.to_excel(excel_writer='result.xlsx')
- 막대 그래프 그리는 코드는 다음 글에서 이어집니다.
- Visual Studio Code에서 작성된 글입니다.
'프로그래밍 > 코드정리' 카테고리의 다른 글
006. 사용한 코드 정리_기초통계 및 막대 그래프 코드 정리(3) (0) | 2021.08.21 |
---|---|
004. 사용한 코드 정리_기초통계 및 막대 그래프 코드 정리(1) (0) | 2021.08.21 |
댓글