ホームページ > バックエンド開発 > Python チュートリアル > Pandas を使用して URL からデータを直接読み取る方法は?

Pandas を使用して URL からデータを直接読み取る方法は?

DDD
リリース: 2024-11-04 10:40:30
オリジナル
461 人が閲覧しました

How to Read Data Directly from a URL Using Pandas?

すべて読み取り URL の難題

データ分析における一般的なタスクの 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 (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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート