4

I use urlopen to acquire a string of data as follows.I want to convert the string to a data frame and reserve several columns, like state, AQI and so on. I do not know how to do it and want to seek advice from you. Thank you!

  response=urlopen(URL).read().decode('utf-8')
  print(response) 
"DateIssue","DateForecast","ReportingArea","StateCode","Latitude","Longitude","ParameterName","AQI","CategoryNumber","CategoryName","ActionDay","Discussion"
"2017-05-01 ","2017-05-01 ","Metropolitan Washington","DC","38.919","-77.013","O3","42","1","Good","false",""
"2017-05-01 ","2017-05-01 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","46","1","Good","false",""
"2017-05-01 ","2017-05-02 ","Metropolitan Washington","DC","38.919","-77.013","O3","44","1","Good","false",""
"2017-05-01 ","2017-05-02 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","25","1","Good","false",""
"2017-05-01 ","2017-05-03 ","Metropolitan Washington","DC","38.919","-77.013","O3","44","1","Good","false",""
"2017-05-01 ","2017-05-03 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","25","1","Good","false",""
"2017-05-01 ","2017-05-04 ","Metropolitan Washington","DC","38.919","-77.013","O3","42","1","Good","false",""
"2017-05-01 ","2017-05-04 ","Metropolitan Washington","DC","38.919","-77.013","PM2.5","29","1","Good","false",""
Yipin
  • 173
  • 1
  • 2
  • 12

2 Answers2

10

It seems you can use:

from pandas.compat import StringIO
df = pd.read_csv(StringIO(response))

But maybe also works:

df = read_csv(URL)
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252
5

use read_fwf and to_csv() then read_csv()

import io 
import pandas as pd

df = pd.read_fwf(io.StringIO(response))

df.to_csv('data.csv')

result_df = pd.read_csv('data.csv',)
ammy
  • 618
  • 1
  • 5
  • 13