Satu tugas biasa dalam analisis data ialah memuatkan data daripada URL. Pandas, perpustakaan Python yang popular untuk manipulasi data, menyediakan fungsi read_csv yang membolehkan seseorang membaca data daripada fail CSV yang terletak dalam laluan fail atau sebagai objek seperti fail. Walau bagaimanapun, cubaan menghantar terus URL ke read_csv boleh mengakibatkan ralat.
Untuk menunjukkan ralat ini, mari kita pertimbangkan contoh yang diberikan dalam soalan:
<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>
Kod ini cuba mendapatkan semula fail CSV daripada URL yang diberikan menggunakan perpustakaan permintaan dan kemudian menghantar kandungan yang diambil sebagai objek seperti fail kepada read_csv. Walau bagaimanapun, ini akan menimbulkan ralat:
Expected file path name or file-like object, got <class 'bytes'> type
Untuk menyelesaikan ralat ini, kami perlu memastikan bahawa kami menghantar objek seperti fail kepada read_csv. Dalam Python, terdapat dua jenis utama objek seperti fail: fail teks dan fail binari. Contoh yang diberikan dalam soalan melepasi tatasusunan bait yang diambil daripada URL, iaitu fail binari. Read_csv menjangkakan objek fail teks, yang boleh diperolehi dengan menyahkod tatasusunan bait:
<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>
Dengan menentukan pengekodan sebagai "utf-8," kami mentafsir tatasusunan bait sebagai fail teks. Ini membolehkan read_csv berjaya memuatkan data daripada URL.
Dalam versi terkini panda (0.19.2), terdapat penyelesaian yang lebih mudah. Pandas kini membenarkan pembacaan terus daripada 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>
Ini menghapuskan keperluan untuk operasi tambahan seperti mendapatkan semula kandungan dan menyahkodnya, menjadikan proses lebih mudah.
Atas ialah kandungan terperinci Bagaimana untuk Membaca Data Terus dari URL Menggunakan Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!