データ分析における一般的なタスクの 1 つは、URL からデータをロードすることです。データ操作用の人気のある Python ライブラリである Pandas は、ファイル パスにある CSV ファイルまたはファイルのようなオブジェクトとしてデータを読み取ることができる read_csv 関数を提供します。ただし、URL を read_csv に直接渡そうとすると、エラーが発生する可能性があります。
このエラーを説明するために、質問に示されている例を考えてみましょう:
<code class="python">import pandas as pd import requests url = "https://github.com/cs109/2014_data/blob/master/countries.csv" s = requests.get(url).content c = pd.read_csv(s)</code>
このコードは、リクエスト ライブラリを使用して指定された URL から CSV ファイルを取得し、取得したコンテンツをファイルのようなオブジェクトとして read_csv に渡そうとします。ただし、これによりエラーが発生します:
Expected file path name or file-like object, got <class 'bytes'> type
このエラーを解決するには、ファイルのようなオブジェクトを read_csv に確実に渡す必要があります。 Python には、テキスト ファイルとバイナリ ファイルという 2 つの主なタイプのファイル様オブジェクトがあります。質問で示されている例では、URL から取得したバイト配列 (バイナリ ファイル) を渡します。 Read_csv は、バイト配列をデコードすることで取得できるテキスト ファイル オブジェクトを期待します。
<code class="python">import pandas as pd url = "https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv" c = pd.read_csv(url, encoding="utf-8")</code>
エンコーディングを「utf-8」として指定することで、バイト配列をテキスト ファイルとして解釈します。これにより、read_csv が URL からデータを正常にロードできるようになります。
最新バージョンの pandas (0.19.2) では、よりシンプルなソリューションが利用可能です。 Pandas では、URL からの直接読み取りが可能になりました:
<code class="python">import pandas as pd url = "https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv" c = pd.read_csv(url)</code>
これにより、コンテンツの取得やデコードなどの追加操作が不要になり、プロセスがより簡単になります。
以上がPandas を使用して URL からデータを直接読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。