ホームページ  >  記事  >  バックエンド開発  >  Python を使用して Excel に新しい列をバッチ追加する方法を段階的に説明します。内容は Excel テーブル名です。

Python を使用して Excel に新しい列をバッチ追加する方法を段階的に説明します。内容は Excel テーブル名です。

PHPz
PHPz転載
2023-04-11 19:34:132830ブラウズ

[[441492]]

まえがき

数日前、プラチナ取引所のグループに[という人がいました。 ? ? ?? ] ファンの皆様から Python 交流グループで Python 自動化オフィスについての質問がありました。一見とても簡単そうに見えますが、実はとても難しいです。質問は下の図のようなものです。

2. 解決策のアイデア

従来のアイデアに従う場合は、まず Excel のテーブルを開いて、次に対応するものを追加します。テーブル名、それが単なるテーブルであり、テーブルの内容に 1 行しかない場合、この演算は 3 を 5 で割って 2 で割ることによって実行できます。しかし、多数のテーブルに遭遇した場合、それらを 1 つずつ処理し続けると非常に疲れてしまいます。

しかし、ここでは、その問題を解決し、間違いのないように、Python を使用して事務作業を自動化する方法を紹介します。戦闘は数秒程度で完了します。

実は [? ? ??] さんも Python を使って解決しようとしたのですが、 Excel ファイルは作成できたものの、その後の列名の書き込みに失敗し、最終的に Excel のテーブルを結合するには、ここには実際には 2 つの要件があります。

3. 解決策

[?(ここは月の裏です] ボス) が提供するコードをここに示します。 , 実際、大まかな考え方は同じですが、実装方法が 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 は test!

2) コード 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 と似ていますが、列名が若干異なります。例の 3 つの Excel のシート名は同じであるため、テーブル名 (テーブル名-シート名) というプレフィックスが付けられています。 .

コードを実行すると、次の図に示すように、対応する Excel ファイルがコード ディレクトリに自動的に生成されます。

After 以下の図に示すように、各 Excel テーブルにはテーブル名に対応する列名もあり、すべてのテーブルのマージ機能も実装されています。

# Excel の結合に関する知識に興味がある場合は、この記事をクリックして学習できます: Python を使用して、同じフォルダー内のすべてのサブフォルダーにある Excel ファイル内のすべてのシート データをバッチ結合する 4 つの方法の一覧。 4. 概要

私は Python の上級ユーザーです。Python 自動化オフィスに関するファンの質問に基づいて、この記事では、Python を使用した基本的なパンダ ファイル処理のソリューションを提供します。 Python はファンの要件を完全に満たしており、ファンの時間を大幅に節約します。

以上がPython を使用して Excel に新しい列をバッチ追加する方法を段階的に説明します。内容は Excel テーブル名です。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。