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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

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

pandas

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

Q&A

解決済

1回答

4062閲覧

pandasについて(csvの読み込み)

nekomannma

総合スコア15

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Python

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

pandas

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

0グッド

0クリップ

投稿2020/09/09 13:09

現在pandasでcsvファイルを読み込んで、pythonを勉強しようとしていました。

その中で、csvファイルを読み込むとエラーが出てくるので、解決方法が知りたいです。
(エラー内容がわかればそこも理解したいです。)

以下、記述です。

import pandas as pd

df = pd.read_csv('Desktop/html_lesson/Python/MyPandas1/practice1/date(csv).csv', encoding='shift-jis')

以下、エラーです。


FileNotFoundError Traceback (most recent call last)
<ipython-input-7-7ef7c8fb839d> in <module>
----> 1 df = pd.read_csv('Desktop/html_lesson/Python/MyPandas1/practice1/date(csv).csv', encoding='shift-jis')

~\anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)
674 )
675
--> 676 return _read(filepath_or_buffer, kwds)
677
678 parser_f.name = name

~\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
446
447 # Create the parser.
--> 448 parser = TextFileReader(fp_or_buf, **kwds)
449
450 if chunksize or iterator:

~\anaconda3\lib\site-packages\pandas\io\parsers.py in init(self, f, engine, **kwds)
878 self.options["has_index_names"] = kwds["has_index_names"]
879
--> 880 self._make_engine(self.engine)
881
882 def close(self):

~\anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
1112 def _make_engine(self, engine="c"):
1113 if engine == "c":
-> 1114 self._engine = CParserWrapper(self.f, **self.options)
1115 else:
1116 if engine == "python":

~\anaconda3\lib\site-packages\pandas\io\parsers.py in init(self, src, **kwds)
1872 if kwds.get("compression") is None and encoding:
1873 if isinstance(src, str):
-> 1874 src = open(src, "rb")
1875 self.handles.append(src)
1876

FileNotFoundError: [Errno 2] No such file or directory: 'Desktop/html_lesson/Python/MyPandas1/practice1/date(csv).csv'

読み込んでいるデータはdate(csv)というファイルです。
※ややこしくてごめんなさい。

ご教授できる方いましたらよろしくお願いいたします。

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

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

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

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

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

meg_

2020/09/09 13:21

「No such file or directory」はパスが間違っているときに出るエラーです。カレントディレクトリは「Desktop」の1階層上ですか?
nekomannma

2020/09/09 13:28

Desktopが最上層?です。
meg_

2020/09/09 13:39

Windowsですよね? Desktopの上は通常ユーザー名だと思いますが質問者さんの環境は違うんですか?
nekomannma

2020/09/09 13:46

すいません、勘違いしてました。users/ユーザー名です。
meg_

2020/09/09 13:51

相対パスを理解されていないようなので、Supernoveさんの回答のように絶対パスを使用されるのが良いと思います。
guest

回答1

0

ベストアンサー

FileNotFoundError:なのでファイルパスの指定方法が適切ではありません。フルパスで指定する場合は以下の記事を参考にしてCSVの保存先をフルパスで書き直してください。

https://windows-podcast.com/sundayprogrammer/archives/80

あと、フルパスをコピーするとバックスラッシュ(もしくは¥)になっているので、そのまま動かすとエスケープシーケンスとプログラムが間違えて認識するのでスラッシュに置換するか、バックスラッシュを二重にすることをお忘れなく。

投稿2020/09/09 13:18

Supernove

総合スコア1154

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

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

nekomannma

2020/09/09 13:29

すごくすごくありがとうございます。やってみます。
nekomannma

2020/09/09 13:32

File "<ipython-input-8-aad0ebad8424>", line 1 df = pd.read_csv('C:\Users\●●\Desktop\html_lesson\Python\MyPandas1\practice1\date(csv).csv', encoding='shift-jis') ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape ​ 上記のエラーが再度出てきました。●●は私の名前(英語表記)になります。
nekomannma

2020/09/09 13:35

ごめんなさい、¥の所は\です
Supernove

2020/09/09 13:40

僕の回答の最後の一文をもう一度読んでください。 「あと、フルパスをコピーするとバックスラッシュ(もしくは¥)になっているので、そのまま動かすとエスケープシーケンスとプログラムが間違えて認識するのでスラッシュに置換するか、バックスラッシュを二重にすることをお忘れなく。」 今まさにバックスラッシュが一つだからエスケープシーケンスとプログラムが勘違いしてエラーが出ているのですよ! 多分僕の説明だと分かりにくかったかもしれませんので、この記事読んでください https://office54.net/python/python-unicode-error
nekomannma

2020/09/09 13:57

何度も丁寧なご説明本当に感謝します。 「'C:/Users/●●/Desktop/html_lesson/Python/MyPandas1/practice1/date(csv).csv'」 「'C:\\Users\\●●\\Desktop\\html_lesson\\Python\\MyPandas1\\practice1\\date(csv).csv'」 「r'C:''Users''●●''Desktop''html_lesson''Python''MyPandas1''practice1''date(csv).csv'」 以上のようにご紹介していただいたサイトの3パターンを試してみても同じエラーが出てきてしました。
Supernove

2020/09/09 14:11

だとすると、そもそもCSVの保存先を勘違いしているということはありませんか? 試しにCSVを読み込むコードと同じディレクトリにdate(csv).csvを配置して動かしてみてはいかがでしょうか? あと、変更する度にちゃんと保存をしていますか?保存しないと実行するときに変更が反映しませんよ
nekomannma

2020/09/09 14:31

ご返信ありがとうございます。 csvの保存先を勘違いしているというのは、保存しなくてはいけない場所が指定されているということでしょうか?それとも、コードが保存先と違うかもよってことでしょうか? Supernoveさんから頂いた情報を元に進めていこうと思います。 また、保存は大丈夫だと思います。
Supernove

2020/09/09 14:44

後者ですね。結局コードでフルパスで指定すると「実は指定先にはCSVは存在しませんでした」というオチになりがちです。なので、普通はCSVとコードの保存先を同じにすれば、 pd.read_csv('date(csv).csv', encoding='shift-jis') だけで済むし簡単ですよね?
Daregada

2020/09/09 14:50

エクスプローラーで該当のcsvファイルの置かれたフォルダーを表示し、SHIFTキーを押したままcsvファイルを右クリック、メニューから「パスのコピー」を選択する。Jupyterに戻って貼り付けを行ない、先頭にrを追加して r"C:(以下略)" の形にする。
nekomannma

2020/09/09 14:59

date_csv = r"C:\Users\●●\Desktop\html_lesson\Python\MyPandas1\practice1\date(csv).csv" df_csv = pd.read_csv(date_csv, encoding='shift-jis') この形であってますでしょうか?\は/です。
Supernove

2020/09/09 15:03

Daregadaさんのやり方でやっているのであればそれであってます。(まずは動かしてみましょう…)
nekomannma

2020/09/09 15:10

この形ではエラーになりました。 --------------------------------------------------------------------------- UnicodeDecodeError Traceback (most recent call last) <ipython-input-28-04f0db1c0db2> in <module> ----> 1 df_csv = pd.read_csv(date_csv, encoding='shift-jis') ~\anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision) 674 ) 675 --> 676 return _read(filepath_or_buffer, kwds) 677 678 parser_f.__name__ = name ~\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds) 446 447 # Create the parser. --> 448 parser = TextFileReader(fp_or_buf, **kwds) 449 450 if chunksize or iterator: ~\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds) 878 self.options["has_index_names"] = kwds["has_index_names"] 879 --> 880 self._make_engine(self.engine) 881 882 def close(self): ~\anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine) 1112 def _make_engine(self, engine="c"): 1113 if engine == "c": -> 1114 self._engine = CParserWrapper(self.f, **self.options) 1115 else: 1116 if engine == "python": ~\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds) 1889 kwds["usecols"] = self.usecols 1890 -> 1891 self._reader = parsers.TextReader(src, **kwds) 1892 self.unnamed_cols = self._reader.unnamed_cols 1893 pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__() pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._get_header() pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._tokenize_rows() pandas\_libs\parsers.pyx in pandas._libs.parsers.raise_parser_error() UnicodeDecodeError: 'shift_jis' codec can't decode byte 0xef in position 0: illegal multibyte sequence すみません、エラーは確認できていたのですが、そもそも記述が理解できていないならまずいと思い先にコードを聞いていました
Supernove

2020/09/09 15:14

おそらくファイルパスの問題はクリアできてるとおもいます。 それでこのエラーはファイルのエンコーディングが合ってないエラーなので、 「encoding='shift-jis'」を消して実行してみてください。
Daregada

2020/09/09 15:16

ファイルを読むことはできています。シフトJISとしては正しくない文字コードがcsvファイルに含まれていますね。
nekomannma

2020/09/09 15:19

解決することができました!お二人とも夜遅くまで本当に感謝します。 この問題で自己解決できず3日かかっていたので本当にうれしく思います。 本当に心の底からありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問