반응형
1. 시험환경
˙ python
˙ mariadb
˙ excel
2. 목적
˙ pandas를 이용하여 엑셀(xlsx) 데이터를 추출하여 dataframe을 생성한다.
˙ dataframe에서 열 단위 데이터를 추출한다.
˙ 추출한 열 단위 데이터를 DB에 저장한다.
3. 적용
① 엑셀(xlsx) 샘플 파일
- 파일명 : sample.xlsx
- Sheet명 : Sheet1
② DB 설정 파일에서 설정 정보를 입력한다.
- 파일명 : rdb.py
- DB 설정정보 : user(계정), password(계정 비밀번호), host(DB IP), port(DB Port), database(스키마)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import mariadb
import sys
def connection():
try:
conn = mariadb.connect(
user="root",
password="1q2w3e",
host="127.0.0.1",
port=3307,
database="sample"
)
except mariadb.Error as e:
print(f"Error connecting to MariaDB Platform: {e}")
sys.exit(1)
return conn
|
cs |
③ 데이터 처리 코드를 작성한다.
- pandas를 이용하여 엑셀(xlsx) 데이터를 추출하여 dataframe을 생성한다.
- dataframe에서 열 단위 데이터를 추출한다.
- 추출한 열 단위 데이터를 DB에 저장한다.
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
42
43
44
45
46
|
import mariadb
import pandas as pd
import rdb
file = './input/sample.xlsx'
def readXlsx(_file):
return pd.read_excel(_file, engine='openpyxl', sheet_name='Sheet1')
def insertColData(_cursor, _col_1_list, _col_2_list, _col_3_list, _col_4_list):
for i in range(len(_col_1_list)):
print(_col_1_list[i], _col_2_list[i], _col_3_list[i], _col_4_list[i])
try:
_cursor.execute("INSERT INTO world VALUES (?, ?, ?, ?)",
(str(_col_1_list[i]).strip(),
str(_col_2_list[i]).strip(),
str(_col_3_list[i]).strip(),
str(_col_4_list[i]).strip()))
except mariadb.Error as e:
print(f"Error: {e}")
if __name__ == '__main__':
print('1. xlsx 파일 읽기')
df = readXlsx(file)
print(df)
print()
print('2. dataframe으로부터 열단위 데이터 추출')
col_1_list = df.iloc[:,0].values.tolist() # 1열
col_2_list = df.iloc[:,1].values.tolist() # 2열
col_3_list = df.iloc[:,2].values.tolist() # 3열
col_4_list = df.iloc[:,3].values.tolist() # 4열
print(col_1_list)
print(col_2_list)
print(col_3_list)
print(col_4_list)
print('3. DB Insert')
conn = rdb.connection()
cursor = conn.cursor()
insertColData(cursor, col_1_list, col_2_list, col_3_list, col_4_list)
conn.commit()
conn.close()
|
cs |
④ 파일 구조
- input/sample.xlsx : 입력 데이터 샘플
- rdb.py : DB 설정 파일
4. 결과
˙ 콘솔 출력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1. xlsx 파일 읽기
Nation Language Money Population
0 America English Dollar 5000
1 Spain Spanish Euro 4000
2 Italy Italian NaN 3000
3 Japan Japanish Japan 20000
2. dataframe으로부터 열단위 데이터 추출
['America', 'Spain', 'Italy', 'Japan']
['English', 'Spanish', 'Italian', 'Japanish']
['Dollar', 'Euro', nan, 'Japan']
[5000, 4000, 3000, 20000]
3. DB Insert
|
cs |
˙ DB 테이블 저장
※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※
반응형
'파이썬' 카테고리의 다른 글
[카카오API] 위경도를 주소로 변환 (0) | 2022.10.22 |
---|---|
[카카오API] 주소를 위경도로 변환 (0) | 2022.10.22 |
python을 이용한 (geo)json 데이터 파싱(parsing) (0) | 2022.08.09 |
pip freeze 명령어 사용법 (0) | 2022.07.11 |
pandas.read_excel()를 이용한 xlsx(엑셀) 파일 load 코드 (0) | 2022.07.04 |