blog

パンダのヒントを使う

最近、Pandasを使ってExcelファイルを操作することがよくあります。 だから、ここでプロセスの彼らの通常の使用の簡単な記録です。 ここでは簡略化のため、Excelファイルを2つ用意しただけで、内...

Mar 4, 2020 · 3 min. read
Share this

前置き

PandasはExcelファイルを操作するために最近よく使われています。

そこで、ここでは彼らが普段使っている処理の簡単な記録を紹介します。

ここでは、Pandasへの導入はありませんが、唯一の個人的な記録を更新していきますが、〜をスプレーしないように好きではありません!

データ1をビルド

ここではシンプルにするために2つのExcelファイルだけを用意しました。

それぞれのExcelファイルには、言語と数学の2つのシートがあるだけです。

データは提供されませんので、単純に作成するだけです。

, 指定されたディレクトリにあるすべての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()
Read next

デザインパターンの学び方

「オレンジは淮南で生まれればオレンジであり、オレンジは華北で生まれればハリネズミである」--サーバーサイドのアプリケーションシナリオでは合理的で便利でクールに見える操作でも、フロントエンドのシナリオに適用すると失敗することがあります。本書の目的は、従来のデザインパターン本の「翻訳」ではなく、フロントエンドエンジニアにデザインパターンの入門書を提供することです。

Mar 4, 2020 · 3 min read