python - 使用 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,而且它们不是。任何帮助,将不胜感激。
干杯,桑迪
解决方案
您永远不会存储附加的数据框。该行:
df.append(data_link)
应该
df = df.append(data_link)
但是,这可能是错误的方法。您真的想使用 URL 数组并将它们连接起来。查看这个类似的问题,看看它是否可以改进您的代码!
推荐阅读
- awk - 检查一行中是否存在所有多个字符串
- javascript - 我的 discord.js 公会成员事件都没有发出,我的用户缓存基本上是空的,我的函数超时了?
- firebase - 如何在不停机的情况下将自定义域从一个 firebase 项目移动到另一个?
- laravel - 如何在 Laravel 7 中按用户更新订单状态
- node.js - 将提及的用户从一个语音通道移动到另一个(discord.js)
- python - Apache Airflow 中的动态 FTPSensor
- java - 如何在数字前对字母数字字符串进行排序(升序)
- asp.net - 防止 Infragistics 使用 ig_common
- android - 如何强制我的 android 应用使用 ipv4 而不是 ipv6?
- python-3.x - 为什么 sklearn 归一化数据的方差不等于 1?