我正在使用API来获取一些数据。返回的数据是Unicode(不是字典/ json对象)。
# get data
data = []
for urls in api_call_list:
data.append(requests.get(urls))
数据如下所示:
>>> data[0].text
u'Country;Celebrity;Song Volume;CPP;Index\r\nus;Taylor Swift;33100;0.83;0.20\r\n'
>>> data[1].text
u'Country;Celebrity;Song Volume;CPP;Index\r\nus;Rihanna;28100;0.76;0.33\r\n'
我想把它放在DataFrame
的国家,名人,歌曲,音量,CPP和索引作为列名。
首先,我尝试将其拆分为\r\n
,如下所示:
x = [i.text.split('\r\n') for i in data]
得到了:
[[u'Country;Celebrity;Song Volume;CPP;Index',
u'us;Taylor Swift;33100;0.83;0.20',
u''],
[u'Country;Celebrity;Song Volume;CPP;Index',
u'us;Rihanna;28100;0.76;0.33',
u'']]
不知道从哪里开始。 。 。
答案 0 :(得分:3)
您可以使用pandas.read_csv
将数据作为数据框列表进行读取,然后将它们连接起来:
# if you use python 2 change this to // from io import BytesIO and use BytesIO instead
from io import StringIO
import pandas as pd
pd.concat([pd.read_csv(StringIO(d), sep = ";") for d in data])
由于您的实际数据是回复列表,您可能需要首先访问该文本:
pd.concat([pd.read_csv(StringIO(d.text), sep = ";") for d in data])
data = [u'Country;Celebrity;Song Volume;CPP;Index\r\nus;Taylor Swift;33100;0.83;0.20\r\n',
u'Country;Celebrity;Song Volume;CPP;Index\r\nus;Rihanna;28100;0.76;0.33\r\n']