python-3.x - 循环将多个列表附加到数据帧python中

标签 python-3.x loops pandas

我必须使用返回 json 对象的 YQL 从雅虎 requests.get() 获取两个网址。我正在获取存储到 list() 中的 json 对象。然后我循环解析数据并创建一个 dic,然后创建一个 pandas 数据框。碰巧只有一个列表被附加到数据框中。似乎在最后一次迭代中,第二个列表覆盖了第一个列表。此时,我不知道如何在列表上迭代 append() 列表的两个元素。这是我的代码...

import requests
import pandas as pd


urls = ['https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20in%20(%22DIA%22%2C%22SPY%22%2C%22IWN%22)%20and%20startDate%20%3D%20%222015-01-01%22%20and%20endDate%20%3D%20%222015-10-31%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=',
        'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20in%20(%22DIA%22%2C%22SPY%22%2C%22IWN%22)%20and%20startDate%20%3D%20%222015-11-01%22%20and%20endDate%20%3D%20%222016-08-31%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=']


for url in urls:
    data = requests.get(url)
    data_json = data.json()

    quote_list = []
    for quote in data_json['query']['results']['quote']:
        quote_dic = {'symbol': quote['Symbol'],
                 'date': quote['Date'],
                 'volume': quote['Volume'],
                 'low': quote['Low'],
                 'high': quote['High'],
                 'open': quote['Open'],
                 'close': quote['Close'],
                 'adj_close': quote['Adj_Close']}

        quote_list.append(quote_dic)

    quote_df = pd.DataFrame(quote_list)

quote_df.to_csv('stocks.csv')

我需要能够将整个 list() 附加到数据框中。这段代码的修复方法是什么?

最佳答案

只需创建一个数据帧列表,并将它们连接到循环末尾:

df_list = []
for url in urls:
    data = requests.get(url)
    data_json = data.json()

    df = pd.DataFrame(data_json['query']['results']['quote'])
    df_list.append(df)

quote_df = pd.concat(df_list)
quote_df.to_csv('stocks.csv')

关于python-3.x - 循环将多个列表附加到数据帧python中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40496008/

相关文章:

C#、For 循环和速度测试……完全相同的循环第二次更快?

python - 使用 lambda 的 Pandas 聚合警告(FutureWarning : using a dict with renaming is deprecated)

python - 将一级混合头数据帧转换为 Pandas 中的垂直数据帧

python - 如何按2个整数排序

javascript - JS 中循环包含对象数组的对象

xml - 在 XQuery 的 "for"循环中选择循环变量的同级或侄女

python - Pandas 数据框日期时间到时间然后到秒

python - 绘制包含字典列表的字典中的值

python - 排除区间的端点

python-3.x - Talos.Scan() 在完成排列之前短暂停止,没有错误