ファイルパスが正しく、生の文字列を使用しているにもかかわらずエラーが発生した場合、pd.read_csv()
関数を使用して.csv
ファイルをロードしようとしています。
import pandas as pd
df = pd.read_csv('C:\\Users\\user\\Desktop\\datafile.csv')
df = pd.read_csv(r'C:\Users\user\Desktop\datafile.csv')
df = pd.read_csv('C:/Users/user/Desktop/datafile.csv')
すべて以下のエラーが発生します。
FileNotFoundError:ファイルb '\ xe2\x80\xaaC:/Users/user/Desktop/tutorial.csv'(または関連するパス)が存在しません。
ファイルを作業ディレクトリにコピーした場合のみ、正しくロードされます。
誰がエラーの原因になっているのか知っていますか?
以前に問題なくフルファイルパスで他のデータセットをロードしていましたが、現在、python(Anacondaパッケージインストーラー経由))を再インストールしてから問題が発生しています。
編集:
問題の原因となっている問題を見つけました。
ファイルプロパティウィンドウからファイルパスをコピーしていたときに、見えないように見える別の文字を意図せずコピーしました。
コピーしたstring
を割り当てると、Unicodeエラーも発生します。
その目に見えない文字を削除すると、上記のコードが機能します。
私の特定の問題では、ファイルを正しくロードできなかったのは、Windowsのファイルプロパティのセキュリティタブからファイルパスをコピーしたときに導入された「見えない」文字が原因でした。
この文字はe2 80 aa
、左から右への埋め込みシンボルであるU + 202AのUTF-8エンコード。文字(文字列の左端の文字)を見つけたら、消去(バックスペースを押すか削除)することで簡単に削除できます。
注:ここでの答えは私の質問に答えないため、私が答えることを選んだのは、(コメントに見られるように)数人が私と同じ状況に出会うかもしれないと思うからです。また、この質問に解決済みのマークを付けなかったため、時々新しい回答があるようです。
これを試して、動作するかどうかを確認してください。これは、指定したパスとは無関係です。
pd.read_csv(r'C:\Users\aiLab\Desktop\example.csv')
ここで、r
は特殊文字であり、生の文字列を意味します。したがって、文字列リテラルの前に付けます。
https://www.journaldev.com/23598/python-raw-string :
Pythonの生の文字列は、文字列リテラルの前に「r」または「R」を付けて作成されます。 Python生の文字列は、バックスラッシュ()をリテラル文字として扱います。これは、バックスラッシュを含む文字列が必要で、エスケープ文字として扱いたくない場合に便利です。
$ 10は、.pyファイルの場所に関してはファイルパスは正しいが、pythonを呼び出す場所に関しては正しくないことを示しています
たとえば、script.pyが〜/ script /にあり、file.csvが〜/にあるとします。 script.pyに含まれているとしましょう
import pandas
df = pandas.read_csv('../file.csv') # correct path from ~/script/ where script.py resides
〜/からpython script/script.py
を実行すると、FileNotFoundエラーが発生します。ただし、〜/ script /からpython script.py
を実行すると機能します。
以下はばかげた間違いですが、ファイルに問題がある可能性があります。
ファイルの名前を手動でadfa123
からabc.csv
に変更しました。ファイルの拡張子は隠されていました。名前を変更すると、実際のファイル名はabc.csv.csv
になりました。その後、名前から余分な.csv
を削除しましたが、すべて問題ありませんでした。
それが他の誰にも役立つことを願っています。
import pandas as pd
path1 = 'C:\\Users\\Dell\\Desktop\\Data\\Train_SU63ISt.csv'
path2 = 'C:\\Users\\Dell\\Desktop\\Data\\Test_0qrQsBZ.csv'
df1 = pd.read_csv(path1)
df2 = pd.read_csv(path2)
print(df1)
print(df2)
Windowsシステムでは、os.path.normcase
。
パス名の大文字小文字を正規化します。UnixおよびMac OS Xでは、パスを変更せずに返します。大文字と小文字を区別しないファイルシステムでは、パスを小文字に変換します。Windowsでは、スラッシュをバックスラッシュに変換します。パスのタイプがstrまたはbytesでない場合(直接またはos.PathLikeインターフェイスを介して間接的に)、TypeErrorを送出します。
import os
import pandas as pd
script_dir = os.getcwd()
file = 'example_file.csv'
data = pd.read_csv(os.path.normcase(os.path.join(script_dir, file)))
Windowsマシンを使用している場合。ファイル拡張子を確認してください。ファイルがfileName.csvではなくfileName.csv.txtとして保存される可能性が高くなります。これを確認するには、フォルダオプションの下にある[ファイル名拡張子]チェックボックスを選択します(スクリーンショットをご覧ください)。
以下のコードが私のために働いた:
import pandas as pd
df = pd.read_csv(r"C:\Users\vj_sr\Desktop\VJS\PyLearn\DataFiles\weather_data.csv");
fileName.csv.txtの場合、名前を変更/修正してfileName.csv
うまくいけば幸運
「c:\」ドライブにあるフォルダからcsv
ファイルを読み取ろうとしましたが、escape,type error, unicode
......というエラーが発生しますが、このコードは機能します変数を取得し、rを追加して読み取ります。
rank = pd.read_csv (r'C:\Users\Dell\Desktop\datasets\iris.csv')
df=pd.DataFrame(rank)
見えない文字を削除する方法には別の問題があります。
私の解決策は、プロパティウィンドウの代わりにファイルウィンドウからファイルパスをコピーすることです。
ファイルパスを満たす必要があることを除いて、それは問題ではありません。
os.path.join
を使用してファイルパスを作成してみてください。
import os
f_path = os.path.join(*['C:', 'Users', 'user', 'Desktop', 'datafile.csv'])
df = pd.read_csv(f_path)
同じ問題が発生しました。パスは正しかった。ファイル名を変更することで問題が解決するようです。
古いファイル名:シーズン2017/2018 Premier League.csv新しいファイル名:test.csv
おそらく空白または「/」
Visual Studioが提供するインタラクティブ機能を使用してファイルを実行すると、同じ問題が発生しました。ネイティブのコマンドラインで実行するように切り替えて、それは私のために働いた。
pd.read_csv('yourDirectory\yourData.csv')
の代わりにpd.read_csv('yourDirectory//yourData.csv')
を使用します