質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

python_excel pandasを利用しての作成

ab7651
ab7651

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

3閲覧

投稿2020/09/08 14:13

編集2022/01/12 10:58

前提・実現したいこと

pythonのエクセルについて質問です。 あるエクセルシートが存在してそれをサンプル.xlsxとします。 サンプル.xlsxの中には A列 B列 C列 日付 会社名 売上 2020/8/20 A社 400 2020/8/21 B社 2000 2020/8/20 C社 100 2020/8/28 B社 500 ・ ・ ・ ・ ・ ・ ・ ・ ・ A・B・C列それぞれにはランダムに複数社の売上データが入っているとします。 行いたいことは新しいファイルを作成し B列にある会社の種類だけシートをその会社名で作成。 それぞれのシートに対応する会社名に対応するクロス集計表を作成したいのですが どの様なプログラムになりますか? コードは手探りで書いているのですが全然違う気もしてきてまして・・・

発生している問題・エラーメッセージ

FileNotFoundError Traceback (most recent call last) <ipython-input-80-547f5f2e3ff5> in <module> 14 for i in suppliers: 15 df["i"] = pd.DataFrame(dataList,columns=columns) ---> 16 with pd.ExcelWriter("店舗別売上別リスト.xlsx",data_format='YYYY/MM/DD',datatime_format='YYYY/MM/DD',engine="openpyxl",mode='a')as writer: 17 df["i"].to_excel(writer,sheet_name="i",index=False) ~\anaconda3\lib\site-packages\pandas\io\excel\_openpyxl.py in __init__(self, path, engine, mode, **engine_kwargs) 23 from openpyxl import load_workbook 24 ---> 25 book = load_workbook(self.path) 26 self.book = book 27 else: ~\anaconda3\lib\site-packages\openpyxl\reader\excel.py in load_workbook(filename, read_only, keep_vba, data_only, keep_links) 311 """ 312 reader = ExcelReader(filename, read_only, keep_vba, --> 313 data_only, keep_links) 314 reader.read() 315 return reader.wb ~\anaconda3\lib\site-packages\openpyxl\reader\excel.py in __init__(self, fn, read_only, keep_vba, data_only, keep_links) 122 def __init__(self, fn, read_only=False, keep_vba=KEEP_VBA, 123 data_only=False, keep_links=True): --> 124 self.archive = _validate_archive(fn) 125 self.valid_files = self.archive.namelist() 126 self.read_only = read_only ~\anaconda3\lib\site-packages\openpyxl\reader\excel.py in _validate_archive(filename) 94 raise InvalidFileException(msg) 95 ---> 96 archive = ZipFile(filename, 'r') 97 return archive 98 ~\anaconda3\lib\zipfile.py in __init__(self, file, mode, compression, allowZip64, compresslevel) 1238 while True: 1239 try: -> 1240 self.fp = io.open(file, filemode) 1241 except OSError: 1242 if filemode in modeDict: FileNotFoundError: [Errno 2] No such file or directory: '"新サンプル".xlsx'

python

import pandas as pd import os df = pd.read_excel("サンプル.xlsx",sheet_name="Sheet1") dateList = [] suppliers = [] columns = list(df.columns) sheetsList=list(df.keys()) for index , rows in df.iterrows(): for row in rows: work.append(row) cell_value = df.iloc[:,1] if cell_value in suppliers: suppliers.append(cell_value) for i in suppliers: df["i"] = pd.DataFrame(dataList,columns=columns) with pd.ExcelWriter("新サンプル.xlsx",data_format='YYYY/MM/DD',datatime_format='YYYY/MM/DD',engine="openpyxl",mode='a')as writer: df["i"].to_excel(writer,sheet_name="i",index=False)

試したこと

補足情報(FW/ツールのバージョンなど)

python3.
anacondaを使用しております。
python自体はドがつく素人でVBAをちょっとかじっているレベルです。
pandasとopenpyxlの使い分けは分析 = pandas エクセル操作 = openpyxl の様なイメージで良いのでしょうか?

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

Supernove
Supernove

2020/09/08 14:41

頂いたソースコードだとインデントが分かりにくいのでお手数ですが、以下のmarkdownの書き方を参考にしてソースコードを掲載し直して頂いてもいいでしょうか? Pythonはインデントがなくなるとfor文の内容が分からないのでお手数ですが、ご対応お願いします。 ご対応いただければ質問内容にご回答します。 https://teratail\.com/help#about-markdown
meg_
meg_

2020/09/08 22:22 編集

・コードは「コードの挿入」で記入してください。 ・エラーメッセージは省略せずに全て掲載してください。
ab7651
ab7651

2020/09/09 07:23

ご丁寧にありがとうございます。 修正してみます!

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。