How to Read CSV File from URL into a Pandas DataFrame [All Method]️
![How to Read CSV File from URL into a Pandas DataFrame [All Method]️](https://howisguide.com/wp-content/uploads/2022/02/How-to-Read-CSV-File-from-URL-into-a-Pandas-DataFrame-All-Method.png)
The step-by-step guide on this page will show you How to Read CSV File from URL into a Pandas DataFrame. After completing this guide, you will know how to face these kind problem.
Question: What is the best solution for this problem? Answer: This blog code can help you solve errors How to Read CSV File from URL into a Pandas DataFrame. Question: What is causing this error and what can be done to fix it? Answer: Check out this blog for a solution to your problem.
How can we read a CSV file from a URL into a Pandas DataFrame?
Example scenario
Let’s see a real-life example of how we might come across a CSV file to download.
Suppose we want to grab the Chicago Home Price Index data from Fred Economic Data.
There is an option to DOWNLOAD
the CSV (data)
on that page, which will download the CSV data locally.
If we right click CSV (data)
and select Copy link address
, we’ll find the URL that will directly download the CSV data onto our machine.
This URL is quite long, but it can be reduced down to the following URL.
https://fred.stlouisfed.org/graph/fredgraph.csv?id=CHXRSA
Read CSV files using requests
We can use requests
to read a CSV file from a URL.
import requests
import pandas as pd
url = 'https://fred.stlouisfed.org/graph/fredgraph.csv?id=CHXRSA'
r = requests.get(url)
open('temp.csv', 'wb').write(r.content)
df = pd.read_csv('temp.csv')
More information on the
requests
library can be found here.
We can specify the separator using sep
.
df = pd.read_csv('temp.csv', sep=';')
We can also skip the first n
rows or last n
rows.
df = pd.read_csv('temp.csv', skiprows=n, skipfooter=n)
Read more on
read_csv()
here. There are lots of parameters we can change.
Revise the code and make it more robust with proper test case and check an error there before implementing into a production environment.
Final Note: Try to Avoid this type of mistake(error) in future!