지난 글에서는 Excel의 Input Data를 "DataFrame" 으로 읽고 활용하는 방법을 설명하였다. (☞클릭!)
DataFrame 으로 활용하는 방법은 직관적이고 내가 읽고자 하는 Column의 인덱스를 명확하게 알 수 있어 편하다는 점이다.
( 콘크리트 휨강도를 산정한다고 생각하면 공식에 들어가는 변수들을 Column index로 만들어 놓으면 매우 쉽다. )
다만, 이 방법의 제일 불편한 점은 그 Column index를 직접 지정해줘야 하는 경우가 생긴다는 것이다.
( 장점이 단점이 되는 뭐 그런 느낌적인... 느낌.. 물론 사용자마다 느끼는 방법은 다를 것이다.)
자 그럼 내가 사용하는 방법은 무엇인지 소개하겠다.!
바로 Numpy array 를 사용하는 방법이다. 이 방법은 우리가 행렬을 읽는 방법과 동일하다고 생각하면 이해하기가 쉽다.
아래의 예를 들어보자.
xls = pd.ExcelFile(files)
Input_df = pd.read_excel(xls, sheet_name=0, skiprows=4, usecols="D:F")
N_list = Input_df.values
print("----------------------------")
print("Input data")
print("----------------------------")
print(N_list)
1. 먼저 Input Data를 Pandas로 읽는다. (초기 형태는 DataFrame으로 가져옴.)
1) Input_df 라는 변수에 저장.
2. 읽어드린 DataFrame 변수에 " .values "를 붙여준다.
1) N_list 라는 변수에 array 형태로 저장.
위의 코딩을 실행시키면 아래와 같은 결과를 볼 수 있다.
----------------------------
Input data
----------------------------
[[2 5 6]
[4 7 2]
[5 6 7]]
위의 결과 모양을 그대로 행열처럼 생각하면 된다. 즉, 직관적으로 행과 열의 번호를 사용하여 코딩을 짤 수 있게되는 것이다.
자 그러면 지난 글에서의 DataFrame을 사용했을 때의 코딩을 Numpy로 아래처럼 바꿔서 한번 만들어보자.
print("----------------------------")
print("Input data")
print("----------------------------")
print(N_list) # Input Data Numpy Array
print("")
#
print("----------------------------")
print("Input Data의 갯수 산정")
print("----------------------------")
noe = len(N_list) # Input Data 의 전체 갯수
print(noe)
print("")
#
print("----------------------------")
print("2행의 1열 값 읽어보기")
print("----------------------------")
print(N_list[1][0]) # 2행의 1열 값 읽기
print("")
위의 코딩을 실행시키면 아래와 같은 결과를 얻을 수 있다.
----------------------------
Input data
----------------------------
[[2 5 6]
[4 7 2]
[5 6 7]]
----------------------------
Input Data의 갯수 산정
----------------------------
3
----------------------------
2행의 1열 값 읽어보기
----------------------------
4
자 그러면 위의 방법을 사용하여 각 열의 a+b+c의 값을 구하는 코딩을 만들어보자.
(지난 글과 비교하면서 읽으면 좀 더 이해가 쉬울것이라 생각한다...)
for i in range(0, noe):
print("")
print("a + b + c 값 구해보자 : " + str(i) + "번째")
sum_value = N_list[i][0] + N_list[i][1] + N_list[i][2] # 각 식의 a + b + c 값.
print(sum_value)
그러면 아래와 같은 결과를 얻을 수 있다.
a + b + c 값 구해보자 : 0번째
13
a + b + c 값 구해보자 : 1번째
13
a + b + c 값 구해보자 : 2번째
18
기존에 설명했던 DataFrame 방법과 이 글에서의 Numpy 방법 중 사용자가 편한 방법을 택하는게 제일 좋다고 생각한다.
자 그럼 이제 Input을 읽고, 원하는 값들에 대한 사칙연산이 가능하니.....
2차방정식의 해를 구하는 코딩을 시작해도 될 것 같다.
'■ 코딩 ■ > 02 Python 실무적용' 카테고리의 다른 글
(Input) Python Input Data 이해하기 - 1 (DataFrame) (3) | 2023.02.05 |
---|---|
(Input) Python과 Excel로 Input Data 읽어들이기 (3) | 2023.01.24 |