python Pandas를 사용하여 Excel 대량 분할 및 Excel 병합
1. 실례 프레젠테이션
1. 큰 엑셀 하나를 여러 엑셀로 분리
2. 여러 개의 작은 Excel을 하나의 큰 Excel로 결합하고 소스를 표시합니다.
work_dir="./course_datas/c15_excel_split_merge"
splits_dir=f"{work_dir}/splits"
import os
if not os.path.exists(splits_dir):
os.mkdir(splits_dir)
둘째, Pandas에서 소스 Excel 읽기
import pandas as pd
No output
df_source = pd.read_excel(f"{work_dir}/crazyant_blog_articles_source.xlsx")
No output
df_source.head()
id title tags
0 2585 Tensorflow python,tensorflow,
1 2583 Pandas concat pandas,python,
2 2574 Pandas Index ? pandas,python,
3 2564 python,
4 2561
df_source.index
RangeIndex(start=0, stop=258, step=1)
df_source.shape
(258, 3)
total_row_count = df_source.shape[0]
total_row_count
2583. 하나의 큰 Excel 등분을 여러 개의 Excel로 분해
1. df를 사용한다.iloc 방법, 큰 데이터 프레임을 여러 개의 작은 데이터 프레임으로 나누기
2. 데이터 프레임을 사용합니다.to_excel 각 작은 Excel 저장
1. 분할된 각 excel의 줄 수 계산
# excel,
user_names = ["xiao_shuai", "xiao_wang", "xiao_ming", "xiao_lei", "xiao_bo", "xiao_hong"]
No output
#
split_size = total_row_count // len(user_names)
if total_row_count % len(user_names) != 0:
split_size += 1
split_size
432. 여러 개의 데이터 프레임으로 분할
df_subs = []
for idx, user_name in enumerate(user_names):
# iloc
begin = idx*split_size
# iloc
end = begin+split_size
# df iloc
df_sub = df_source.iloc[begin:end]
# df
df_subs.append((idx, user_name, df_sub))
No output
3. 모든 데이터fame를 excel에 저장
for idx, user_name, df_sub in df_subs:
file_name = f"{splits_dir}/crazyant_blog_articles_{idx}_{user_name}.xlsx"
df_sub.to_excel(file_name, index=False)
No output
4. 여러 개의 작은 Excel을 하나의 큰 Excel로 결합
1. 병합할 Excel 파일 목록을 보려면 폴더를 반복합니다.
2. 각각 데이터 프레임에 읽고 df마다 표시된 원본에 열을 추가합니다
3. pd를 사용한다.concat df 대량 합병 진행
4. 통합된 데이터 프레임을 excel로 출력하기
1. 병합할 Excel 이름 목록을 보려면 폴더를 반복합니다.
import os
excel_names = []
for excel_name in os.listdir(splits_dir):
excel_names.append(excel_name)
excel_names
['crazyant_blog_articles_0_xiao_shuai.xlsx','crazyant_blog_articles_1_xiao_wang.xlsx',
'crazyant_blog_articles_2_xiao_ming.xlsx',
'crazyant_blog_articles_3_xiao_lei.xlsx',
'crazyant_blog_articles_4_xiao_bo.xlsx',
'crazyant_blog_articles_5_xiao_hong.xlsx']
2. 데이터 프레임에 각각 읽기
df_list = []
for excel_name in excel_names:
# excel df
excel_path = f"{splits_dir}/{excel_name}"
df_split = pd.read_excel(excel_path)
# username
username = excel_name.replace("crazyant_blog_articles_", "").replace(".xlsx", "")[2:]
print(excel_name, username)
# df 1 ,
df_split["username"] = username
df_list.append(df_split)
crazyant_blog_articles_0_xiao_shuai.xlsx xiao_shuaicrazyant_blog_articles_1_xiao_wang.xlsx xiao_wang
crazyant_blog_articles_2_xiao_ming.xlsx xiao_ming
crazyant_blog_articles_3_xiao_lei.xlsx xiao_lei
crazyant_blog_articles_4_xiao_bo.xlsx xiao_bo
crazyant_blog_articles_5_xiao_hong.xlsx xiao_hong
3. pd를 사용한다.concat 병합
df_merged = pd.concat(df_list)
No output
df_merged.shape
(258, 4)
df_merged.head()
id title tags username0 2585 Tensorflow 변장 목록 특징 python,tensorflow, 특징 공정xiao_shuai
1 2583 Pandas 데이터의 통합을 실현하는 concat pandas,python, 데이터 분석xiao_shuai
2 2574 Pandas의 Index 색인은 어떤 용도로 사용됩니까?pandas,python, 데이터 분석xiao_shuai
3 2564 머신러닝 상용 데이터 세트 대전체python, 머신러닝xiao_shuai
4 2561 데이터 과학자의 수련 경로 데이터 분석xiao_shuai
df_merged["username"].value_counts()
xiao_hong 43xiao_bo 43
xiao_shuai 43
xiao_lei 43
xiao_wang 43
xiao_ming 43
Name: username, dtype: int64
xiao_hong 43xiao_bo 43xiao_shuai 43xiao_lei 43xiao_wang 43xiao_ming 43Name: username, dtype: int64
4. 통합된 데이터 프레임을 excel로 출력하기
df_merged.to_excel(f"{work_dir}/crazyant_blog_articles_merged.xlsx", index=False)
이는python Pandas를 이용하여 Excel과 Excel을 대량으로 분할하는 것에 관한 글을 소개합니다. 더 많은 관련 Pandas Excel과 Excel을 대량으로 분할하는 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Pandas의 DataFrame 스왑 열 순서 방법 구현1. DataFrame 열 레이블 가져오기 ['ps_state-stopped', 'ps_state-running', 'ps_state-blocked', 'ps_state-paging', 'ps_state-sleepi...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.