在python

时间:2016-01-06 02:51:17

标签: python sql pandas

我试图使用不同的列表将不同的数据集从SQL拉入python。例如,我有以下数据:

years = [2006, 2007, 2008]
2006 = [A, B, C, D, E]
2007 = [D, E, F, G, H, I, J, K]
2008 = [E, F, G]

然后我要使用以下公式提取数据:

df = pd.read_sql('SELECT %s from Table' % (str(x)), con=conn)

我希望字符串str(x)首先遍历每年,然后使用相应年份的列表。

所以,首先它应该做2006年并循环通过2006年的名单(A,B,C,D,E),运行该计划的其余部分,然后继续到2007年和2008年。

我之前使用过循环但不确定如何在不同列表之间循环。

2 个答案:

答案 0 :(得分:3)

如果我理解正确,您可能希望分层次地表达您的数据:

years = {
    2006: ['A', 'B', 'C', 'D', 'E'],
    2007: ['D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'],
    2008: ['E', 'F', 'G'],
}

然后你可以循环这些年,然后在每年的字母上循环:

for year, letters in years.items():
    # do something per year
    for letter in letters:
        # do something per letter for the year

这会回答你的问题吗?

答案 1 :(得分:1)

cr3解决方案的另一个优点是,您可以轻松解决每年的项目,例如:

print years[2006]

for y in years[2006]:
    print y