판다스 기존 엑셀 파일 양식에 날짜를 기준으로 데이터 삽입 하는 법

조회수 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으로 처리되었음 합니다. 이런 느낌의 삽입도 가능할까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)