파이썬/파이썬일반

python(vscode)/엑셀만들기/엑셀에 입력하기/딕셔너리 엑셀에 추가하기

gongdol 2023. 10. 9. 18:44
300x250

https://gongdolgongdol.tistory.com/190

 

python(vscode)/dataframe min max 구하기/원하는 범위만 계산하기

csv 파일을 데이터로 불러오고 min max 를 구해볼텐데 내가 원하는 부분의 데이터만 가지고 할 수 있도록 해보자. 1. 예제파일 준비 1) 아래와 같이 예제 파일을 준비한다. 2. 코드작성 1) 아래와 같이

gongdolgongdol.tistory.com

 

1. 예제파일 만들기

   1) 앞서 csv 파일로 max, min 구했던 자료 기준으로 진행 (위 링크된 글 참고)

   2) max, min 값을 엑셀파일을 만들어 저장해보자. 

      - 아래 딕셔너리 값을 엑셀에 저장할 것이다. 

 

 

2. 코드작성

  1) 코드중 윗부분은 앞 자료와 동일하다(위 링크된 글 )

  2) 중간에 함수부분과, 맨아래 함수사용부분만 추가됨. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import numpy as np
import pandas as pd
 
#1. 데이터 가져오기
filename = r"C:\Users\Documents\test2.csv" #파일명 작성
data = pd.read_csv(filename)        #data 변수에 엑셀 데이터를 넣는다
data1 = data.astype(np.float16)       #용량을 줄여준다. 
col1 = data.columns # 첫번째 칼럼을 col1 변수에 넣는다.
 
#데이터 min max 구할 index 범위 설정
xmin = 0             
xmax = 200     
 
# 데이터 min, max, range(max-min) 기록하기 함수
import openpyxl 
 
def max_min_range_inexcel(add_filename,xmin,xmax,list): # 그래프 그릴때의 x축  min max 기준으로 계산한다.
    range_data = {}
    for data in list:
        # 1번 줄에 있는 데이터 min max 구하기
        data_min = data1.loc[xmin:xmax, [data]].min(skipna=True# min
        data_max = data1.loc[xmin:xmax, [data]].max(skipna=True# max
        range_data[data]=[data_min[data],data_max[data],data_max[data] - data_min[data]]
 
    wb = openpyxl.Workbook()
    write_ws = wb.active
    for key,val in range_data.items():
        da = [key] + val
        write_ws.append(da)
    wb.save(add_filename)
 
 
# xlsx 파일에 넣기
filename = r"C:\Users\Documents\result.xlsx" # 저장할 파일명과 파일위치 정의
list1 = [col1[1],
         col1[3]]
max_min_range_inexcel(add_filename=filename,xmin=xmin,xmax=xmax,list=list1)
 
 
 
 
cs

 

3. 결과 

300x250