読み込んだエクセルファイルの行数がいくつなのかを、
ファイル名を見ただけで分かるようにしたい!
そんなお悩みを、Python歴3年の私ができるだけわかりやすく解説し、解決に導きます。
実行見本
全コード
ひとまず全コードを網羅します。解説は後ほど行います。
import pandas as pd
import math
df = pd.read_excel('input.xlsx')
gyousu = len(df)
goukei = sum(df['点数'])
heikin = math.floor(goukei/gyousu)
#heikin = math.ceil(goukei/gyousu)
#heikin = round(goukei/gyousu)
df.to_excel('行数'+str(gyousu)+'_合計'+ str(goukei) +'_平均'+str(heikin)+'_output.xlsx')
gyousu = len(df)
goukei = sum(df['点数'])
事前準備
- pandasのインストール
今回の本題とは直接関係ありませんが、エクセルファイルの読み込みをする際に「pandas」が必要になります。
pandasのインストール方法
pandasを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install pandas
※pandasを使用したことがある場合は、このインストール作業は不要です。
解説
「math」のインポート
>>2.import math
「math」は「切り上げ」や「切り捨て」をする際に必要となります。
今回は「平均値」を出すためにインポートしておりますが、必要なければこの一文は不要です。
行数の取得
>>4.gyousu = len(df)
「len()」で行数を取得し、「gyousu」という変数に入れています。
【 行数を入れる変数 = len(行数を取得したいDataFrame) 】
合計数の取得
>>5.goukei = sum(df[‘点数’])
「sum()」で指定列の合計数を取得し、「goukei」という変数に入れています。
【 合計数を入れる変数 = sum(DataFrame[‘合計数を取得したい列名’]) 】
平均値の取得
>>6.heikin = math.floor(goukei/gyousu)
>>7.#heikin = math.ceil(goukei/gyousu)
>>8.#heikin = round(goukei/gyousu)
「合計」を「行数」で割ることで平均値を出し、それを「heikin」という変数に入れています。
「math.floor()」は小数点以下切り捨て、
「math.ceil()」は小数点以下切り上げ、
「round()」は四捨五入です。
ファイル名を指定して書き出し
>>9.df.to_excel(‘行数’+str(gyousu)+’_合計’+ str(goukei) +’_平均’+str(heikin)+’_output.xlsx’)
取得した「行数」「合計数」「平均値」の3つをファイル名に入れています。
各項目を「+(プラス)」でつなぐことで、連結できます。
「行数」や「output.xlsx」などの文字列は「’(シングルクォーテーション)」で囲ってください。
★「str()」は何?★
変数をそのまま入れて連結するとエラーが出ます。
これは「gyousu」「goukei」「heikin」3つの変数がint型(数字)であるため、
str型(文字列)であるファイル名とケンカしているような状態です。
変数をそれぞれ「str()」で囲いstr型にすることによって、エラーを解消することができます。
その他の解説
「read_excel」などは下記記事で解説しております。ご参考ください。
うまく動作しない時
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
ファイル名を部分一致指定で読み込む方法もご紹介しておりますので、ご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
まとめ
PandasのDataFrameで行数・合計数を取得してファイル名に入れる方法を解説いたしました。
ファイルを開かなくても、ファイル名を見ただけで瞬時に判断できるため、かなり便利かと思います。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!