从单个CSV(Python)中的列表下载多个CSV文件
我有一个两栏的CSV,第一栏有下载链接,第二栏有公司符号。例如: ,必和必拓 ,TSA 我试图循环浏览列表,以便Python通过下载链接打开每个CSV,并将其单独保存为公司名称。因此,应按如下方式下载和保存每个文件: 必和必拓 TSA.csv 下面是我正在使用的代码。它当前将整个CSV导出为单行选项卡格式,然后循环返回,并在无限循环中一次又一次地执行此操作从单个CSV(Python)中的列表下载多个CSV文件,python,csv,dataframe,Python,Csv,Dataframe,我有一个两栏的CSV,第一栏有下载链接,第二栏有公司符号。例如: ,必和必拓 ,TSA 我试图循环浏览列表,以便Python通过下载链接打开每个CSV,并将其单独保存为公司名称。因此,应按如下方式下载和保存每个文件: 必和必拓 TSA.csv 下面是我正在使用的代码。它当前将整个CSV导出为单行选项卡格式,然后循环返回,并在无限循环中一次又一次地执行此操作 import pandas as pd data = pd.read_csv('download_links.csv', names=['
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")
在我将列表“缓存”转换为数据帧“文件”以导出它之前,数据的格式是完美的。只有当问题开始时,它才会转换为数据帧
我希望在这方面能得到一些帮助,因为我已经被困在上面几个小时了。并行迭代这两个字段:
for download, symbol in data.itertuples(index=False):
df = pd.read_csv(d,index_col=None, header=0)
df.to_csv('{}.csv'.format(symbol))
艾伦的解决方案非常有效。我只需要在第2行添加name=['download',symbol']。多亏奥斯汀·黑斯廷斯也有机会。
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)