前置き
PandasはExcelファイルを操作するために最近よく使われています。
そこで、ここでは彼らが普段使っている処理の簡単な記録を紹介します。
ここでは、Pandasへの導入はありませんが、唯一の個人的な記録を更新していきますが、〜をスプレーしないように好きではありません!
データ1をビルド
ここではシンプルにするために2つのExcelファイルだけを用意しました。
データは提供されませんので、単純に作成するだけです。
, 指定されたディレクトリにあるすべてのExcelファイルをマージします。
import pandas as pd
import os
path = r'.\生徒の成績
# 指定したフォルダーの下にあるすべてのエクセルファイルを取得する。
excels = [file for file in os.listdir(path) if ('.xls' in file) or ('.xlsx' in file)]
# 読み込まれたエクセルデータのリスト、要素は以下の通りである。{sheet_name: sheet_data, ...}
all_dfs = []
print('---------------\tデータの読み込みを開始する\t---------------')
for excel in excels:
print(f'####\t{excel}')
# converters={' : str} 学校番号の最初の0が失われるのを防ぐ
dfs = pd.read_excel('\\'.join([path, excel]), sheet_name=None,
converters={' : str})
all_dfs.append(dfs)
print('---------------\t読み取りデータを終了する\t---------------')
print('---------------\tデータのマージと書き込みを開始する\t---------------')
writer = pd.ExcelWriter('\\'.join([path, '生徒の結果.xlsx']), mode='w')
for key in all_dfs[0].keys():
print(f'####\t{key}')
# エクセルデータリストをマージする。_nameキーデータと等しい
concat_df = pd.concat([df[key] for df in all_dfs])
concat_df.to_excel(writer, sheet_name=key, index=False)
writer.save()
print('---------------\tマージを終了し、データを書き込む\t---------------')
効果
注意事項
1)3〜4関数を書いて、指定されたディレクトリのExcelファイルを読んで、Excelのデータを読んで、データをマージするなど、ステップバイステップで、これほど良い時間を節約するためではありません;
(2)キーコードは非常に少ないですが、あなたは完全に個々の印刷()を削除することができます、これは単に個人的な習慣は、実行の進捗状況を確認するようなものです;
このコードは、複数のシートの場合は、マージされたデータのシートのみを取得したい場合は、実際には、より簡単です。
例:言語の結果だけをマージしたい場合
import pandas as pd
import os
path = r'.\生徒の成績
# 指定したフォルダーの下にあるすべてのエクセルファイルを取得する。
excels = [file for file in os.listdir(path) if ('.xls' in file) or ('.xlsx' in file)]
all_dfs = []
for excel in excels:
df = pd.read_excel('\\'.join([path, excel]), sheet_name=' ,
converters={' : str})
all_dfs.append(df)
writer = pd.ExcelWriter('\\'.join([path, '生徒の結果.xlsx']), mode='w')
concat_df = pd.concat(all_dfs)
concat_df.to_excel(writer, sheet_name=' , index=False)
writer.save()