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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Q&A

解決済

2回答

5157閲覧

Pythonを使って、UTF-8でコードされたcsvファイルをExcelに書き出したい

shopy

総合スコア6

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

0グッド

0クリップ

投稿2021/04/29 04:16

Python 2年生 スクレイピングのしくみ を見ながら勉強中です。

test.csvを読み込んで、国語の点数でソートして、Excelファイルに出力(csv_to_excel1.xlsx)に出力してみましょう。という課題をやっているのですが書き出せません。

test.csvの内容は以下のような内容です。(きっとUTF-8でコードされていてます。)
名前 国語 数学 英語 理科 社会
0 A太 83 89 76 97 76
1 B介 66 93 75 88 76
2 C子 100 84 96 82 94
3 D郎 60 73 63 52 70
4 E美 92 62 84 80 78
5 F菜 96 92 94 92 90

UTF-8でコードされたcsvファイルをexcelに書き出したい

Mac OS 10.13.6
Anaconda.NavigatorからJupyter Notebookを起動させてJupyter Notebook上でPythonを使用中です。
Python 2年生 スクレイピングのしくみ を見ながら勉強中です。

test.csvを読み込んで、国語の点数でソートして、Excelファイルに出力(csv_to_excel1.xlsx)に出力してみましょう。という課題をやっているのですが書き出せません。
以下のエラーメッセージが出力されます。

csv_to_excel1_test.xlsx is not UTF-8 encoded

Jupyter Notebookの入力画面にはエラーは出ないのですが、出力ファイルに下記のようなメッセージが出ます。

Error!/Users/自分のパソコン名/Python2年生/csv_to_excel1_test.xlsx is not UTF-8 encoded Saving disabled. See Console for more details.

該当のソースコード

Python3

1import pandas as pd 2import openpyxl 3 4# Load CSV file 5df = pd.read_csv("test.csv") 6 7# Sort 8kokugo = df.sort_values("国語", ascending=False) 9 10# Export to Excel file 11kokugo.to_excel("csv_to_excel1_test.xlsx")

試したこと

Jupyter note上で
df = pd.read_csv("test.csv")
print(df)
と入力すればtest.csvの内容はちゃんと出力されます。
ネット上でUTF-8コードされたものをShift-JISに変換するというコードがあったのですが、該当ソースコードにどう組み込んでいいかわからなかったです。

補足情報

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

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

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

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

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

can110

2021/04/29 04:26

そのエラーはどのタイミングで発生するのでしょうか? プログラムの実行時に発生するのでしょうか? それとも、出力された.xlsxファイルをJupyter上で開こうとした場合に発生しているのではないでしょうか。
guest

回答2

0

この内容では、CSVファイルではありません。

test.csvの内容は以下のような内容です。(きっとUTF-8でコードされていてます。) 名前 国語 数学 英語 理科 社会 0 A太 83 89 76 97 76 1 B介 66 93 75 88 76 2 C子 100 84 96 82 94 3 D郎 60 73 63 52 70 4 E美 92 62 84 80 78 5 F菜 96 92 94 92 90

投稿2021/04/29 06:48

technocore

総合スコア7200

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

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

shopy

2021/04/29 06:56

すみません。csvファイルの内容そのままを記載する方法がわかりません。test.csvを df = pd.read_csv("test.csv") print(df) でJupyter上に出力されたものをコピペしました。 こんな内容がCSVとして入力してあるcsvファイルだったということです。
guest

0

ベストアンサー

Jupyter Notebookは一般的な画像やテキストファイルしか開けません。
Excelなどの.xlsxに対応しているソフトで開いてください。

投稿2021/04/29 04:29

can110

総合スコア38234

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

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

shopy

2021/04/29 05:52

できました!単純なことでした。プログラムを実行すると,Jupyterのファイル一覧に.xlsxファイルが載ります。それを一度Mac本体にダウンロードしてからExcelで開いたら開けました。Jupyterのファイル一覧上で.xlsxファイル名をクリックして開こうとしていたから開けなかったのでした。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問