如何在for循环中追加空数据帧

时间:2017-05-04 01:02:02

标签: python python-2.7 pandas

我正在使用pandas作为pd和python 2.7

我有一堆查询,每个查询都返回序列号。然后我在一堆更多的查询中使用该序列号。我想将所有结果附加到列表中。当我追加到一个空列表时,它只返回任何内容。我不知道我做错了什么。

 for query in list_of_queries:
     results  = pd.read_sql_query(query,connection,index_col=None)
     for serial_number in results['SerialNumbers']:
        a = []
        new_query = """ SELECT * FROM blah b where b.SerialNumber = '{}' """
        new_query = new_query.format(serial_number)
        results = pd.read_sql_query(new_query,connection,index_col = None)
        a.append(results)

1 个答案:

答案 0 :(得分:1)

您正在每个for循环的开头将列表重置为空。这应该是:

a = []
for serial_number in results['SerialNumbers']:        
    new_query = """ SELECT * FROM blah b where b.SerialNumber = '{}' """
    new_query = new_query.format(serial_number)
    results = pd.read_sql_query(new_query,connection,index_col = None)
    a.append(results)
# 'a' will now have all the results

此外,看起来你可能会破坏results,因为你将它用作变量名两次(每次循环一次)。我建议改变它!