🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

3154閲覧

take no arguments の原因が分からない

ycarp3340

総合スコア4

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

1クリップ

投稿2021/01/20 14:15

編集2021/01/20 15:39

前提・実現したいこと

Python初心者です。
Excelファイルを一つのファイルにまとめたいと試みているのですが、
Traceback (most recent call last):
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\descriptors\base.py", line 55, in _convert
value = expected_type(value)
TypeError: Fill() takes no arguments

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\YM\PycharmProjects\samle\Exceladd.py", line 9, in <module>
list.append(pd.read_excel(file))
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\pandas\util_decorators.py", line 299, in wrapper
return func(*args, **kwargs)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\pandas\io\excel_base.py", line 336, in read_excel
io = ExcelFile(io, storage_options=storage_options, engine=engine)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\pandas\io\excel_base.py", line 1114, in init
self._reader = self._engines[engine](self._io, storage_options=storage_options)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\pandas\io\excel_openpyxl.py", line 469, in init
super().init(filepath_or_buffer, storage_options=storage_options)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\pandas\io\excel_base.py", line 391, in init
self.book = self.load_workbook(self.handles.handle)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\pandas\io\excel_openpyxl.py", line 480, in load_workbook
return load_workbook(
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\reader\excel.py", line 317, in load_workbook
reader.read()
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\reader\excel.py", line 281, in read
apply_stylesheet(self.archive, self.wb)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\styles\stylesheet.py", line 192, in apply_stylesheet
stylesheet = Stylesheet.from_tree(node)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\styles\stylesheet.py", line 102, in from_tree
return super(Stylesheet, cls).from_tree(node)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\descriptors\serialisable.py", line 103, in from_tree
return cls(**attrib)
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\styles\stylesheet.py", line 73, in init
self.fills = fills
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\descriptors\sequence.py", line 26, in set
seq = [_convert(self.expected_type, value) for value in seq]
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\descriptors\sequence.py", line 26, in <listcomp>
seq = [_convert(self.expected_type, value) for value in seq]
File "C:\Users\YM\PycharmProjects\samle\venv\lib\site-packages\openpyxl\descriptors\base.py", line 57, in _convert
raise TypeError('expected ' + str(expected_type))
TypeError: expected <class 'openpyxl.styles.fills.Fill'>

とのエラーが表示されて上手いこといきません。

調べてもどこをどのように修正すれば立ち行くのか分からず、
皆様のお力をお貸しいただければと思います。

該当のソースコード

import glob import pandas as pd files = glob.glob("個人*.xlsx") carp_b_list = [] for file in files: carp_b_list.append(pd.read_excel(file)) df = pd.concat(carp_b_list) df.to_excel('total.xlsx', index=False)

Excelの中身

このような野球のデータになります。
これが100ファイルほどあるのですが、それをひとまとめにしたいと考えています。

選手 シーズン リーグ チーム 守備 G PA H HR RBI SB BB% K% AVG OBP SLG OPS BABIP wRC+ Rbsr Roff Rdef WAR 山本 浩二 1976 セ・リーグ 広島 中 129 535 136 23 62 14 0.116 0.107 0.293 0.38 0.511 0.89 0.293 131 1.7 22.5 6.2 5 菊池 涼介 2013 セ・リーグ 広島 二 141 633 133 11 57 16 0.06 0.191 0.247 0.297 0.374 0.67 0.297 85 5.9 -4.4 27.5 4.9 江藤 智 1999 セ・リーグ 広島 三 121 517 127 27 79 9 0.145 0.155 0.291 0.397 0.556 0.953 0.301 146 2.9 32.7 -3.3 4.9 野村 謙二郎 1990 セ・リーグ 広島 遊 125 576 149 16 44 33 0.078 0.144 0.287 0.354 0.464 0.818 0.316 114 4.4 14.6 11.3 4.9 小鶴 誠 1955 セ・リーグ 広島 中 130 549 141 18 67 26 0.084 0.124 0.285 0.344 0.457 0.801 0.299 145 1.7 25.4 -5 4.8 野村 謙二郎 1994 セ・リーグ 広島 遊 130 614 169 10 61 37 0.073 0.122 0.303 0.357 0.407 0.764 0.334 105 7 10.5 12.4 4.8 江藤 智 1998 セ・リーグ 広島 三 132 580 120 28 81 7 0.167 0.178 0.253 0.379 0.465 0.845 0.264 132 2 23.4 0.7 4.8 古葉 竹識 1963 セ・リーグ 広島 遊 116 512 157 7 37 32 0.059 0.057 0.339 0.38 0.441 0.82 0.346 135 7.4 26.5 -3.1 4.8 新井 貴浩 2005 セ・リーグ 広島 三 142 587 165 43 94 3 0.063 0.215 0.305 0.353 0.603 0.956 0.325 142 -2.2 28.5 -3 4.8 緒方 孝市 2003 セ・リーグ 広島 中 136 599 159 29 82 8 0.07 0.167 0.3 0.362 0.53 0.892 0.322 126 -0.3 19.8 4.5 4.7 山本 一義 1969 セ・リーグ 広島 右 115 459 118 21 66 4 0.111 0.126 0.294 0.379 0.488 0.867 0.299 152 -0.7 24.8 -0.6 4.7 衣笠 祥雄 1980 セ・リーグ 広島 三 130 549 144 31 85 16 0.077 0.162 0.294 0.361 0.526 0.887 0.305 135 2.8 25.7 -2.5 4.7 シーツ 2003 セ・リーグ 広島 遊 136 568 161 25 75 3 0.076 0.208 0.313 0.369 0.525 0.894 0.364 126 -0.1 19.1 6.1 4.7 山崎 隆造 1985 セ・リーグ 広島 右 130 610 167 10 46 35 0.126 0.087 0.328 0.412 0.44 0.852 0.347 118 7.2 21.5 2.5 4.7 水谷 実雄 1981 セ・リーグ 広島 一 126 488 144 23 82 1 0.105 0.113 0.337 0.407 0.55 0.957 0.341 154 -3.5 27.6 -1.9 4.7 水谷 実雄 1971 セ・リーグ 広島 左 125 524 136 9 45 14 0.055 0.074 0.283 0.331 0.393 0.724 0.292 119 2.8 12.4 7.4 4.6 野村 謙二郎 1992 セ・リーグ 広島 遊 130 611 157 14 63 21 0.092 0.119 0.288 0.358 0.424 0.782 0.31 110 7.9 15.3 6 4.6 江藤 智 1993 セ・リーグ 広島 三 131 569 136 34 82 7 0.137 0.165 0.282 0.387 0.529 0.916 0.286 151 1.3 33.5 -11.5 4.6 金本 知憲 1999 セ・リーグ 広島 左 135 576 147 34 94 10 0.122 0.16 0.293 0.382 0.546 0.928 0.3 140 3.1 32.2 -8.3 4.6 衣笠 祥雄 1984 セ・リーグ 広島 三 130 542 161 31 102 11 0.063 0.153 0.329 0.373 0.573 0.947 0.339 135 0.8 25.3 -0.2 4.6 衣笠 祥雄 1968 セ・リーグ 広島 一 127 463 109 21 58 11 0.117 0.164 0.276 0.377 0.494 0.87 0.293 150 -1.2 24.5 -1 4.6 金本 知憲 1995 セ・リーグ 広島 左 104 438 101 24 67 14 0.139 0.178 0.274 0.381 0.515 0.896 0.285 138 1.5 21.6 6.4 4.6 衣笠 祥雄 1972 セ・リーグ 広島 一 130 565 147 29 99 12 0.087 0.136 0.295 0.368 0.51 0.878 0.296 144 -2.3 25.8 -5 4.6 山本 一義 1966 セ・リーグ 広島 左 123 497 127 15 70 2 0.123 0.046 0.3 0.394 0.474 0.868 0.287 160 0 29.8 -9.2 4.6 丸 佳浩 2015 セ・リーグ 広島 中 143 633 132 19 63 15 0.148 0.226 0.249 0.361 0.413 0.774 0.304 126 3.8 20.8 -3.3 4.5

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takutakuya

2021/01/20 14:43

エラーはなるべくそのまま貼り付けたほうが良いです。 コードも「コードの挿入」という機能があるので、それを使用して貼り付けてください。 インデントが消されています。 あと、「list」という名前のリストは作らないほうが良いです。
takutakuya

2021/01/20 15:24

エラーを再現できなかったので、データ自体やライブラリのバージョンによって発生する・しないがあるのかもしれません。 簡易的なデータのファイルを作ってテストしてみる、pandas、openpyxlのバージョンを最新にしてみる、ぐらいは試してみてもよいかもです。
Daregada

2021/01/20 15:33

こちらでもエラーを再現できないので、「個人*.xlsx」の中身のサンプル(ダミーでも可)を見せてください。
Daregada

2021/01/20 15:56

提示されたデータを2分割して読み込ませましたが、読み込み・書き込みともに問題なく行なえます。
ycarp3340

2021/01/20 16:06

Excelファイルはどこに格納されてますか?
Daregada

2021/01/20 16:08

PythonスクリプトもExcel文書2つも、カレントディレクトリに置いて実行。
ycarp3340

2021/01/21 07:01

他のファイルだと結合できるのですが、このファイルだけ結合できません。 今回結合したいファイルは全てダウンロードしてきたものになるのですが、その辺りが何か影響を及ぼしていたりはするのでしょうか?
Daregada

2021/01/21 08:27

Stackoverflowで似たような症状を訴えている人に、「.xlsxファイルが壊れているのでは」というアドバイスがあったので、Excelで読んで別名で保存してみるとかしてはどうでしょう。
ycarp3340

2021/01/21 09:56

名前変更して上書き保存した後に結合してみると、結合できました! ありがとうございました????
Daregada

2021/01/21 10:49

では、それっぽい回答を書いておくので、「解決済」にしてください。
guest

回答1

0

ベストアンサー

補足分:

「別のファイルでは結合できた」と追加情報が得られたので、うまくいかないExcel文書に問題があると考え、「該当のExcel文書をExcelで開き、保存し直す(ことで文書形式の問題を解消する)」という提案を行なったところ、それにより問題が解決された。

以下、元の回答:

for文で繰り返す前に空リストを作る。
おそらく、それをしようとしたcarp_b_listがその後使われていないのはなぜ?

Python

1import pandas as pd 2import glob 3 4files = glob.glob("個人*.xlsx") 5 6carp_b_list = [] 7 8for file in files: 9 carp_b_list.append(pd.read_excel(file)) 10 11df = pd.concat(carp_b_list) 12 13df.to_excel('total.xlsx', index=False)

これで手元のExcel文書を連結できているので、エラーが出るのは別の原因があるはず。

投稿2021/01/20 15:09

編集2021/01/21 10:50
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takutakuya

2021/01/20 15:17

私が「list」という名前のリストは作らないほうが良いと指摘して、修正された時の漏れですね。
Daregada

2021/01/20 15:22

おう、了解。ということは、エラーはExcelの内容によるものか。
ycarp3340

2021/01/20 15:23

申し訳ありません。 takutakuyaさんの仰り通り修正漏れの部分です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問