微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-生成多个熊猫数据帧

我正在从网站检索csv格式的多个数据帧.我将数据帧保存在一个空列表中,然后一一读取.我不能将它们附加到单个数据框中,因为它们具有不同的列名和列顺序.所以我有以下问题:

我可以在用于读取文件的循环内创建一个具有不同名称的数据框,因此,不是将它们保存到列表中,而是为每个检索到的文件创建一个新的数据框?如果这不可能/不推荐,有没有办法迭代我的列表以提取数据帧?目前,我当时只读取一个数据帧,但是我想提出一种自动执行此代码以创建诸如data_1,data_2等之类的方法.由于只有4个数据帧,现在我的代码并没有花费很多时间,但是这可能会增加更多数据的负担.这是我的代码

import pandas as pd
import urllib2
import csv

#we write the names of the files in a list so we can iterate to download the files
periods=['2012-1st-quarter','2012-2nd-quarter', '2012-3rd-quarter', '2012-4th-quarter']
general=[]
#we generate a loop to read the files from the capital bikeshare website
for i in periods:
    url = 'https://www.capitalbikeshare.com/assets/files/trip-history-data/'+i+'.csv'
    response = urllib2.urlopen(url)
    x=pd.read_csv(response)
    general.append(x)
q1=pd.DataFrame(general[0])

谢谢!

解决方法:

如果使用字典会更好,也可以直接将网址传递给pandas.read_csv.因此,简化的代码如下所示:

import pandas as pd

periods = ['2012-1st-quarter','2012-2nd-quarter', '2012-3rd-quarter', '2012-4th-quarter']
url = 'https://www.capitalbikeshare.com/assets/files/trip-history-data/{}.csv'
d = {period: pd.read_csv(url.format(period)) for period in periods}

然后,您可以像这样访问特定的DataFrame:

 d['2012-4th-quarter']

要遍历所有数据框:

for period, df in d.items():
    print period
    print df

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐