途中まで上手くいってたのに、関数に「df['請求書No'] =…」を入力するのを忘れていたことに気づいて、入力し直してから再度実行したら「Excel file format cannot be determined, you must specify an engine manually.」が表示されて、xlrdのバージョンを1.2.0に下げてもダメで詰みました…orz
初心者な質問です。動画→27:40辺りに関して ご教示お願い致します。 df = pd.DataFrame() for filepath in filepaths: _df = extract(filepath) print(filepath) df = pd.concat([df,_df]) 上記を入力すると、下記エラーがでます。なぜでしょうか? /content/drive/My Drive/エクセル操作用/請求書_12月_株式会社ABC.xlsx /content/drive/My Drive/エクセル操作用/請求書_11月_XYZ株式会社.xlsx /content/drive/My Drive/エクセル操作用/請求書_10月_TTTInc.xlsx --------------------------------------------------------------------------- IndexError Traceback (most recent call last) in () 2 3 for filepath in filepaths: ----> 4 _df = extract(filepath) 5 print(filepath) 6 df = pd.concat([df,_df]) 4 frames /usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in _validate_key(self, key, axis) 1365 # check that the key does not exceed the maximum size of the index 1366 if len(arr) and (arr.max() >= len_axis or arr.min() < -len_axis): -> 1367 raise IndexError("positional indexers are out-of-bounds") 1368 else: 1369 raise ValueError(f"Can only index by location with a [{self._valid_types}]") IndexError: positional indexers are out-of-bounds
オンライン講義を開講します!!
リアルタイム講義はめったに実施しないので、是非この機会にご参加ください!😁
日程:2021年9月10日 (金) 19:30 - 21:30
sagasuru.jp/course-details/cho-honkaku-teki-python-niyoru-gyomu-jido-ka-jissen-gazo-ninshiki-to-burauza-sosa-no-jido-ka
エラー解決方法などもそのまま載せる事はいいですね👍
上級者の方でもエラー出た時などは調べて対策してるってのが初心者にも伝わりますね!
初心者からしたら上級者の方は何でもパパッと解決してる!とかミスをしない!とかって思い込んでしまうことがありますからね💦
とてもわかりやすくて、参考になりました
ありがとうございました
引き続き、いろいろな、投稿を参考にさせていただきます
なんとかglobでデータ読み込みできました。for文の解説込みで話してくれているので初心者にはとても頼もしいです。やはり、個々での働きはわかりますが、今回のようにfor文の中にfor文があったりすると初心者は意味不明なのです。個々の関数の働きなど説明されながらの動画でとても理解が深まったと感じました。これからも初心者向けの動画、または、実務で生かせる内容で、確実に理解が深まるような内容の動画期待しております。こういった内容の動画をいくつもこなすことで、実力が付くような気がしますので今後ともよろしくお願いいたします。
質問です。
本当に初歩なのですが、「■ 講義使用ファイル」をダウンロードし、
パスを取得すべく、
import pandas as pd
from glob import glob
filepaths = glob('source/*.xlsx')
filepaths
を入力したのですが、
パスを取得することができず、結果が [] となってしまいます。
この原因と対策をおしえていただけますと助かります。
Python初学者ですが、大変勉強になります。ありがとうございます。
参考になる情報ですので、フォローさせていただきました。pythonって使い勝手がいいんでうよねー簡単だし。
ありがとうございます😊!
いまにゅさん、
いつも、python学習の一つとして拝見されていただいております。
とてもわかりやすくて、同じ目線で実装してるので学びやすいです!
色々pythonの質問できるコミュニティサイトとかありますか?
お忙しい中恐縮ですが、よろしくお願いいたします。
端末入力だけで財務諸表作成までを一元的に自動化したかったところです。
◎excelの自動化
●Excelファイルの集約
*pandasを利用
1.Excelファイルを準備
→同じフォーマット/最大行数12行
2.pandasとglobをインポート
3.glob関数利用、
→Excelファイルのパスを習得
→glob('source/*.xlsx')
filepathの変数に代入
*_を変数につけるのは一時的に格納する
変数の為
5.データの抽出→請求情報(メインデータ)
→(メタデータ)
6.
◎excelでよく使う機能
●カラムの順序変更
●集計表の作成
・売り上げ総額と打ち上げを順にまとめる
1.担当者リストの作成
発行者= 担当者
ユニーク関数を使用して重複なく担当者を
リスト化
2.まず一人集計表作成
1.条件抽出で岸辺さんのデータのみ抽出
2.金額カラムの合計
_df[] .sum()
3.企業名抽出→ユニーク関数
4.企業ごとの総額
3.データフレームの構成確認
1.合計 tot_earnings
pd.DataFrame({'担当者':member})
*インデックス番号入れないとエラー
2.内訳 earnings
dictクラス
必要なものはクラスとキー
→: でなく=
→シングルクォーテーション省略可能
大学のデータ解析でもむっちゃ役立ちました!!!
ありがとうございます!
お役に立てたようで良かったです!!!
初歩的な質問ですみません。
いまにゅさんが用意してくださったエクセルファイルをjupyter lab で開いているファイルに入れて、glob関数を使ってエクセルファイルを読み取ったのですが、空のリストが返されます。
どうしたらいいでしょうか?
いつもありがとうございます。
【質問です】
MacBookProかAirの購入を考えております。
プログラミングをする場合、現状M1搭載のMacはアプリ等の互換性の関係で適していない部分がある可能性ある事から、Intelが入っているMacを購入すべきという記事を拝見しました。
実際どう思われますか?
また、プログラミングをする場合、現時点ではどのMacを買うのが適切だと思いますか?
よろしくお願いいたします。
いつも勉強させていただきありがとうございます。
一点質問なんですが、16:00 にて、下記のようにカラムを代入されていたんですが
.columnsの記述の理由がわらかないです。初心者質問で恐縮ですが、教えてもらえると幸いです。
df.columns = columns
途中まで上手くいってたのに、関数に「df['請求書No'] =…」を入力するのを忘れていたことに気づいて、入力し直してから再度実行したら「Excel file format cannot be determined, you must specify an engine manually.」が表示されて、xlrdのバージョンを1.2.0に下げてもダメで詰みました…orz
いつも、参考にさせていただき、たいへん助かっています。
今西先生にお願いがあります。一つのファイルに複数のシートがあり、それぞれのシートの読み込むセルの位置(セル番号)が異なります。このファイルが複数有り、これを別のファイルの1枚のシートにコピペし纏める動画を作成いただけると助かります。
(例えば、Sheet1~5のデータを横1行にコピペして、繰り返し処理を行うイメージです)
ご検討いただけると幸いです。よろしくお願いします。
検討します!
14:27 でなぜdropna(axis =1)を使って欠損値を削除していないのでしょうか??
これは、実用的ですね。vbaの処理と比べ安くてすごく参考になります。
コメントありがとうございます!!
そのようにおっしゃっていただき嬉しいです!!
動画ありがとうございます。とても勉強になります。非常に助かっています。
エクセルで行っていことをpythonで実装しようと勉強中です。
エクセルでやっていた機能の置き換えなどの動画の作成予定などありますでしょうか?例えば
列1の値を列2、列3、列4...にそれぞれかけて値を出す(エクセルで言うsumproduct)など
データフレーム全体に関数を適用や、列の平均などは出せるのですが、セルの値を使って計算していく
や列同士の掛け算などが分からなくて、困っております。あとエクセルでは複素数がiなのに対し、pythonではjのため、エクセルの複素数データを読み込んでも、複素数として認識できません。jに置換しても上手くいきません。
コメントありがとうございます!!
現状そのような動画の作成予定はありませんが、検討させていただきます!
とても参考になりました。ありがとうございます!
こちらこそご視聴ありがとうございます!!!
この動画好きすぎるのでいいね押しておきました!
いつもありがとうございます!!!!!!
はじめまして。ユースフルの動画を見させて頂き、初心者でここにたどり着きました。初っ端4:59を教えてください。python_excel_01フォルダをC直下に置きまして、filepaths読込を実行すると結果が[] 空欄で帰ってきてしまいます。エラーではないので式の誤字ではないと思うのですが、どこに原因があると考えられますでしょうか?
やっと自己解決致しました。
まだ進めてはいないのですが、google コラボラトリーはローカルを読めないということにやっと今気づきました。。。
精進します。
日頃 vba で組んでいますが、python は、EUC には向かない感じがします。作り上げるまでの時間が結構かかりそうですね。
わかりやすい動画なので、これで勉強させて頂いています。
1つ教えてもらいたいのですが動画の中の
total_res =[]
for member in members:
_df = df[df['発行者コード'] == member]
companies = _df['企業名'].unique()
・・・・・・・
この部分で下記のようなエラーでどうしても解決できず困っています。
考えられる原因は何でしょうか。よろしくお願いします。
_df = df[df['発行者コード'] == member]
~~^^^^^^^^^^
KeyError: '発行者コード'
動画では、’発行者‘のところを’発行者コード’としていますが、名前が入っています。
deepcopyを行う前のグラフ作成時に縦軸と横軸のグラフ両方作成されるのですがこれはなぜでしょうか
glob2.globで ファイルが loadされません エラーに も ならず 書くかっこが 表示されるだけ で 対処の 方法を 教えて下さい データは 左の ディレクトリに あります
お願いします
いつも有意義な動画本当にありがとうございます。Excel、Wordの自動化について質問があるのですが、よろしければお答えいただけると幸いです。私はオンラインショップをやっているのですが宛先をシールに印刷することで書く手間を省き、自動化をしようと考えています。郵便番号、住所、名前などが記入されたエクセルシートをWordに移動させ、差し込み印刷ウィザードを利用しシールに印刷するところまでを自動化することは可能でしょうか。可能でしたら使用するツールを教えていただいてもよろしいでしょうか。何卒よろしくお願いいたします。
たぶんRPAあたりのソフトを検討されたらいいと思います。ただ私自身、差し込み印刷はあまり経験ないので適確な情報ではないかもしれません。何かの参考に成ったら幸いです。
8分の時点で挫折しました。xlrdのヴァージョンを下げてもxlsxが読み込めません。engineをopenpyxlにしてもダメでした。
xlsに拡張子を変更したら読み込めました。
分かりやすい動画でいつも参考にさせていただいています。
1点質問させてください。
38:20あたりで躓いています。
df = df.reset_index(drop=True) と入力すると以下のエラーが表示されました。
AttributeError Traceback (most recent call last)
in
----> 1 df = df.reset_index(drop=True)
AttributeError: 'function' object has no attribute 'reset_index'
これは何が原因なのでしょうか?
dfを実行して結果を見たらどうかな?dfに表に成ってなければ、この行以前の場所にdfにpandasの表が入っていないからだと思われます。dfがpandasの表のデータじゃないから、reset_index()が実行できないんだと思われます。
まずexcelではなくpandasの使い方を覚えれば今回のエラーの意味が解るかもしれません。ちょっといきなりexcelは敷居が高いと思います。
僕も想像で言ってて、また上手く行かなかったら教えてください。僕自身もpythonはよく解ってないので勉強中の身でごめんなさい。一緒に勉強出来たら幸いです。
It would be nice that I could understand this :,)
pdf_gen(file_pdf,sh)でpdfを出力したら、同じデータが15行繰り返されてしまいます。どの様にすればよろしいでしょうか。
いただいた情報だけでは原因分かりませんね、、、
関数内の11行目のdata.append(unit_aa) の開始位置が誤っていることに気が付きました。大変失礼いたしました。
ポインティー痩せたな!?って思ったら全然違かった
質問している方いますが、filepathes=glob('source/*.xlsx')でシフトエンターしても[]が表示されてしまいます。googleコラボレートリーなので、実行ファイルと同じところにsourceフォルダを作ってファイルを入れました。
自分は.xlsxではなく.csvにしたらいけました!
自分はjupyter notebookで実行したら表示されました。
理由をchatGPTに聞いてみたら、下記の答えが返ってきました(私はちゃんと理解できていませんが…参考までに貼っておきます)
ーーーーーーーーーー
glob モジュールは、ファイルパターンにマッチするファイル名を見つけるための便利な方法を提供します。glob.glob() 関数を使用してファイル名を取得しようとする場合、通常の状況ではどちらのJupyter環境でも同じ結果が得られるはずです。しかし、一部の状況では異なる結果が得られることがあります。
以下に考えられるいくつかの理由を挙げてみましょう。
キャッシュの違い: Jupyter LabとJupyter Notebookは内部的に異なるキャッシュや動作を持っていることがあります。一方の環境ではキャッシュが更新されていない可能性があるため、ファイルの変更が反映されていないことがあります。
Kernelのリスタート: Jupyter環境でカーネルがクラッシュしたり再起動したりすると、一部の変更が反映されないことがあります。この場合、一度カーネルを再起動してみてください。
カレントディレクトリの違い: Jupyter LabとJupyter Notebookが実行されているディレクトリが異なる場合、glob を使用する際のカレントディレクトリが異なる可能性があります。これにより、異なるファイルやディレクトリがマッチすることがあります。
バグや設定の違い: Jupyter LabやJupyter Notebookはそれぞれ別々のアプリケーションとして開発されており、一部のバグや設定の違いが影響を与えることがあります。バージョンの違いや設定の違いによっても影響が出る可能性があります。
これらの理由の中から、問題の原因を特定するのが難しい場合は、以下のステップを試してみてください。
カーネルを再起動してみてください。一部の状況では、問題が解決することがあります。
ファイルの変更を確認するために、Jupyter LabとJupyter Notebookの両方で同じディレクトリを使用していることを確認してください。
バージョンや設定の違いについて調査し、可能な限り同じ設定を使用するようにしてみてください。
もし問題が解決しない場合は、具体的なコード例や状況を提供いただければ、より詳細なアドバイスをすることができるかと思います。
glob関数でファイルを読み込めないんですが何が原因でしょう?
エラー内容等を見てみないとわからないですね、、、
1:14:30
glob関数で同じ記述内容で処理しようとしても[]と表示されます。なぜでしょうか?
こんにちは、多分1:58のsourceと言うフォルダにEXCELファイルが入ってないからだと思います。講義用使用ファイルあたりから、EXCELファイルを読み込んでないのが原因に想われます。
それでも出来なかったら一緒に悩めたらと想います。ご迷惑だったらすみません。
まず,Windowsにpythonを入れるハードルが高い。
そういえば最近全然エクセル使ってないな
officeオンラインでできますか??
やったことがないのでわかりませんが、できない気がします!
@@imanyu_programming ですよね…
ありがとうございます!
声がジャパネット感が
初心者な質問です。動画→27:40辺りに関して
ご教示お願い致します。
df = pd.DataFrame()
for filepath in filepaths:
_df = extract(filepath)
print(filepath)
df = pd.concat([df,_df])
上記を入力すると、下記エラーがでます。なぜでしょうか?
/content/drive/My Drive/エクセル操作用/請求書_12月_株式会社ABC.xlsx
/content/drive/My Drive/エクセル操作用/請求書_11月_XYZ株式会社.xlsx
/content/drive/My Drive/エクセル操作用/請求書_10月_TTTInc.xlsx
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
in ()
2
3 for filepath in filepaths:
----> 4 _df = extract(filepath)
5 print(filepath)
6 df = pd.concat([df,_df])
4 frames
/usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in _validate_key(self, key, axis)
1365 # check that the key does not exceed the maximum size of the index
1366 if len(arr) and (arr.max() >= len_axis or arr.min() < -len_axis):
-> 1367 raise IndexError("positional indexers are out-of-bounds")
1368 else:
1369 raise ValueError(f"Can only index by location with a [{self._valid_types}]")
IndexError: positional indexers are out-of-bounds
21:48あたりのdef extract(filepath): 以降が上手く定義出来て無いのではないかと思います。
素直にVBAでよくね・・・?
エクセル作業をやるってことは、会社のケースが多い。
会社にpythonなんて入ってる企業なんてほぼ皆無だし
講座出しておいて言うのもあれですが、VBAで良いと思います!!
Pythonは他にも応用が利く言語であることが最大の強みかなと!!!
VBA。。32bit前提でしか、DB接続し難いので嫌い。。Jenkinsともクソのように愛想が悪い(一々、エクセルを開きに行こうとするので、Jenkins内でエラーで落ちる。プラグインで回避とかくそめんどい)。。と、コードがクソのように読みにくい。。
でも使っちゃうw簡単に使えるし。
pythonの方が楽なんだけどね。。まぁ、これからでしょうな~一般企業でpython3系を入れていい様になるのは。