>백엔드 개발 >파이썬 튜토리얼 >Python을 사용하여 Excel에 새 열을 일괄 추가하는 방법을 단계별로 설명합니다. 내용은 Excel 테이블 이름입니다.

Python을 사용하여 Excel에 새 열을 일괄 추가하는 방법을 단계별로 설명합니다. 내용은 Excel 테이블 이름입니다.

PHPz
PHPz앞으로
2023-04-11 19:34:132850검색

[[441492]]

머리말

얼마전 플래티넘 교환그룹에 [? ? ??]라는 팬이 얼핏 질문을 하더군요. , 아주 간단해 보이지만 실제로는 어려운 문제입니다. 아래 그림과 같습니다.

2. 솔루션 아이디어

기존 아이디어를 따르는 경우 먼저 Excel 테이블을 열고 테이블이 하나만 있는 테이블인 경우 테이블의 마지막 열에 해당 테이블 이름을 추가합니다. 테이블 내용 행에서 이렇게 하면 됩니다. 3 x 5 나누기 2이면 충분합니다. 하지만 많은 테이블을 만나면 계속해서 하나씩 처리하면 매우 피곤해질 것입니다.

하지만 여기서는 문제를 해결하고 실수가 없는지 확인하기 위해 Python을 사용하여 사무를 자동화하는 방법을 소개하겠습니다. 전투는 몇 초 안에 완료됩니다.

실제로 [? ? ??]도 Python을 사용하여 해결하려고 했으나 몇 가지 문제가 발생하여 Excel 파일이 생성되었으나 후속 열 이름 쓰기가 실패하여 결국 Excel 테이블을 병합해야 했습니다. 실제로 여기에는 두 가지 요구 사항이 있습니다.

3. Solution

여기 [?(This is the back of the moon] boss]님이 제공한 코드가 있습니다.대체적인 아이디어는 실제로 동일하지만 구현 방법은 Python 프로그램을 사용하여 구현하면 효율성이 매우 다릅니다!

1. 코드 1

# coding: utf-8 
# 给每个excel中的sheet增加一列,值为excel名.xlsx 
from pathlib import Path 
import pandas as pd 
path = Path(r'E:PythonCrawlerpython_crawler-masterMergeExcelSheetfile777') 
excel_list = [(i.stem, pd.concat(pd.read_excel(i, sheet_name=None))) for i in path.glob("*.xls*")] 
data_list = [] 
for name, data in excel_list: 
    print(name) 
    print(data) 
    data['表名'] = name 
    data_list.append(data) 
result = pd.concat(data_list, ignore_index=True) 
result.to_excel(path.joinpath('给每个excel中的sheet增加一列,值为excel名.xlsx'), index=False, encoding='utf-8') 
print('添加和合并完成!')

i.stem은 예를 들어 D:/와 같이 상위 노드와 접미사를 제외하고 파일 이름을 가져오는 것을 의미합니다. Desktop/ test.txt, i.stem은 테스트입니다!

두 번째, 코드 2

# coding: utf-8 
# 给每个excel中的sheet增加一列,值为excel名-sheet名.xlsx 
from pathlib import Path 
import pandas as pd 
path = Path(r'E:PythonCrawlerpython_crawler-masterMergeExcelSheetfile777') 
excel_list = [(i.stem, pd.concat(pd.read_excel(i, sheet_name=None))) for i in path.glob("*.xls*")] 
data_list = [] 
for name, data in excel_list: 
    print(name) 
    print(data) 
    data['表名'] = name 
    data.reset_index(level=0, inplace=True)  # 重置level_0索引 
    data_list.append(data) 
result = pd.concat(data_list, ignore_index=True) 
result['表名'] = result['表名'] + '-' + result['level_0']  # 更改列值 
del result['level_0']  # 删除多余列 
result.to_excel(path.joinpath('给每个excel中的sheet增加一列,值为excel名-sheet名.xlsx'), index=False, encoding='utf-8') 
print('添加和合并完成!')

이 코드는 열 이름이 약간 다른 점을 제외하면 실제로 코드 1과 유사합니다. 왜냐하면 세 가지의 시트 이름이 예제에서 우수하기 때문입니다. 마찬가지로 테이블 이름을 접두사로 사용하고, 테이블 이름 - 시트 이름을 사용하세요.

코드가 실행되면 아래 그림과 같이 해당 Excel 파일이 코드 디렉터리에 자동으로 생성됩니다

. 엑셀 테이블에는 테이블 이름에 해당하는 컬럼명도 있고, 아래 그림과 같이 모든 테이블의 병합 기능도 구현되어 있습니다.

엑셀 병합 지식에 관심이 있으신 분들은 다음 연구: Python을 사용하여 동일한 폴더의 모든 하위 폴더에 있는 Excel 파일의 모든 시트 데이터를 일괄 병합하는 4가지 방법에 대한 목록, 유용한 정보가 가득합니다! 이 기사는 팬을 기반으로 작성되었습니다. Python 자동화 오피스에 대한 질문은 Python 기본 + Pandas 파일 처리를 사용하여 팬의 요구 사항을 완전히 충족하고 많은 시간을 절약해 주는 솔루션을 제공했습니다

.

위 내용은 Python을 사용하여 Excel에 새 열을 일괄 추가하는 방법을 단계별로 설명합니다. 내용은 Excel 테이블 이름입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제