首页 > 解决方案 > 使用 for 循环附加多个熊猫数据帧,但返回一个空数据帧

问题描述

我要下载一些 .csv 文件,我将它们转换为 pandas 数据框并相互附加。

可以通过每天创建的 url 访问 csv,使用 datetime 可以轻松生成并放入列表中。

我可以在列表中单独打开这些。

当我尝试打开其中的一些并将它们附加在一起时,我得到一个空的数据框。代码看起来像这样。

#Imports
import datetime 
import pandas as pd


#Testing can open .csv file
data = pd.read_csv('https://promo.betfair.com/betfairsp/prices/dwbfpricesukwin01022018.csv')
data.iloc[:5]


#Taking heading to use to create new dataframe 
data_headings = list(data.columns.values)


#Setting up string for url
path_start = 'https://promo.betfair.com/betfairsp/prices/dwbfpricesukwin'
file = ".csv"


#Getting dates which are used in url 
start = datetime.datetime.strptime("01-02-2018", "%d-%m-%Y")
end = datetime.datetime.strptime("04-02-2018", "%d-%m-%Y")
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days)]


#Creating new dataframe which is appended to
for heading in data_headings:
    data = {heading: []}

df = pd.DataFrame(data, columns=data_headings)


#Creating list of url
date_list = []

for date in date_generated:
    date_string = date.strftime("%d%m%Y")

    x = path_start + date_string + file
    date_list.append(x)


#Opening and appending csv files from list which contains url
for full_path in date_list:
    data_link = pd.read_csv(full_path)
    df.append(data_link)

print(df)

我已经检查过它们不仅是空的 csv,而且它们不是。任何帮助,将不胜感激。

干杯,桑迪

标签: pythonpandaslist

解决方案


您永远不会存储附加的数据框。该行:

df.append(data_link)

应该

df = df.append(data_link)

但是,这可能是错误的方法。您真的想使用 URL 数组并将它们连接起来。查看这个类似的问题,看看它是否可以改进您的代码!


推荐阅读