판다스 기존 엑셀 파일 양식에 날짜를 기준으로 데이터 삽입 하는 법
조회수 417회
기존 양식 엑셀 파일인 A.xlsx 가 있고 양식에 대입을 할 데이터가 저장된 B.xlsx엑셀 파일이 있습니다.
import pandas as pd
xlsxB = pd.ExcelFile('B.xlsx')
Bdf = pd.read_excel(xlsxB, sheet_name=0)
print(Bdf.to_markdown())
행 | 날짜 | A | B |
---|---|---|---|
0 | 20210526 | a | 5400 |
1 | 20210526 | b | 3600 |
2 | 20210526 | c | 17300 |
3 | 20210527 | a | 4000 |
4 | 20210527 | d | 4500 |
#날짜 float64
#A object
#B int64
xlsxA = pd.ExcelFile('A.xlsx')
Adf = pd.read_excel(xlsxA, sheet_name=0)
print(Adf.to_markdown())
행 | 날짜 | x | x.1 | A | x.2 | x.3 | x.4 | x.5 | x.6 | B | A.1 | x.7 | x.8 | x.9 | x.10 | x.11 | B.1 | A.2 | x.12 | x.13 | x.14 | x.15 | B.2 | A.3 | x.16 | x.17 | x.18 | x.19 | B.3 | A.4 | x.20 | x.21 | x.22 | x.23 | B.4 | B.5 | A.5 | B.6 | A.6 | x.24 | x.25 | x.26 | x.27 | Unnamed: 43 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2021-05-26 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
1 | 2021-05-27 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
2 | 2021-05-28 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
3 | 2021-05-29 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
4 | 2021-05-30 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
5 | 2021-05-31 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
6 | 2021-06-01 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
7 | 2021-06-02 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
8 | 2021-06-03 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
9 | 2021-06-04 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
10 | 2021-06-05 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
11 | 2021-06-06 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
12 | 2021-06-07 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
13 | 2021-06-08 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
14 | 2021-06-09 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
15 | 2021-06-10 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
16 | 2021-06-11 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
17 | 2021-06-12 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
18 | 2021-06-13 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
19 | 2021-06-14 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
20 | 2021-06-15 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
21 | 2021-06-16 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
22 | 2021-06-17 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
23 | 2021-06-18 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | nan | nan | nan | nan |
24 | 2021-06-19 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | 0 | nan | nan | nan |
25 | 2021-06-20 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | 0 | nan | nan | nan |
26 | 2021-06-21 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | 0 | nan | nan | nan |
27 | 2021-06-22 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | 0 | nan | nan | nan |
28 | 2021-06-23 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | 0 | nan | nan | nan |
29 | 2021-06-24 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | 0 | nan | nan | nan |
30 | 2021-06-25 00:00:00 | nan | nan | a | nan | nan | nan | nan | nan | nan | b | nan | nan | nan | nan | nan | nan | c | nan | nan | nan | nan | nan | d | nan | nan | nan | nan | nan | e | nan | nan | nan | nan | nan | f | nan | g | nan | nan | 0 | nan | nan | nan |
31 | 합계 | nan | nan | nan | 합계 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | nan |
#날짜 datetime64[ns]
#A object
#B float64
각 엑셀파일의 모양입니다.
B엑셀 파일에는 날짜칼럼과 기준이 될 A열, 삽입을 원하는 B열이 있습니다.
A엑셀 파일의 핵심에는 각 A 열과 B 열 그리고 날짜 열 입니다. 나머지 열은 건들지 않는 부분입니다.
A열 ~ B열까지가 세트로 A열은 각 a, b, c, d, e, f, g 로 이루어 져 있습니다.
각 B열의 31행은 엑셀 내부에 sum 처리가 되어있어 최대한 엑셀 파일의 데이터를 유지하면서 작업을 해야하는 상황입니다.
양식은 0행에서 31행이 계속 반복됩니다.
B엑셀의 날짜와 A열을 기준으로 B열의 데이터를 A엑셀의 B열에 대입하고싶습니다. 예를들어 B엑셀을 기준으로
B열 0행 = 5400
B.1열 0행 = 3600
B.2열 0행 = 17300
B열 1행 = 4000
B.3열 1행 = 4500
위와같은 위치에 각 값이 들어갔으면 합니다. B엑셀에 B열에 삽입할 데이터가없거나 날짜행이 따로 없다면 공란이 생기는 부분은 0으로 처리되었음 합니다. 이런 느낌의 삽입도 가능할까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력