从单个CSV(Python)列表中下载多个CSV文件

时间:2017-03-31 03:44:45

标签: python csv dataframe

我有一个2列CSV,第一列包含下载链接,第二列包含公司符号。例如:

http://data.com/data001.csv,BHP

http://data.com/data001.csv,TSA

我正在尝试遍历列表,以便Python通过下载链接打开每个CSV,并将其作为公司名称单独保存。因此,应按如下方式下载和保存每个文件:

BHP.csv

TSA.csv

以下是我正在使用的代码。它目前将整个CSV导出为单行选项卡格式,然后循环返回并在无限循环中反复执行。

import pandas as pd

data = pd.read_csv('download_links.csv', names=['download', 'symbol'])
file = pd.DataFrame()
cache = []

for d in data.download:
    df = pd.read_csv(d,index_col=None, header=0)
    cache.append(df)
    file = pd.DataFrame(cache)
    for s in data.symbol:
        file.to_csv(s+'.csv')

print("done")

直到我将列表'cache'转换为DataFrame'文件'以导出它,数据格式完美。它只有在故障开始时才转换为DataFrame。

我喜欢这方面的一些帮助,因为我已经坚持了几个小时。

2 个答案:

答案 0 :(得分:0)

并行迭代这两个字段:

for download, symbol in data.itertuples(index=False):
    df = pd.read_csv(d,index_col=None, header=0)  
    df.to_csv('{}.csv'.format(symbol))

答案 1 :(得分:0)

import pandas as pd
data = pd.read_csv('download_links.csv')
links = data.download
file_names = data.symbol
for link, file_name in zip(links,file_names):
    file = pd.read_csv(link).to_csv(file_name+'.csv', index=False)
相关问题