2017-07-19 80 views
0

以下是我的Python代码。我对我的代码有疑问如何使用python访问分区熊猫数据框

我已经根据国家对输入数据帧进行了分区。但是如何在一个循环中分别访问每个国家的数据? (DFS [0],DFS1 ..不工作)

dfs = {k: v for k, v in df1.groupby ('country')} 

源代码:

import pypyodbc 
import numpy as np 
import pandas as pd 
import scipy.stats 

connection = pypyodbc.connect('Driver={SQL Server};''Server=GIRSQL.GIRCAPITAL.com;''Database=Tableau;''uid=SQL_User;pwd=Greentableau!') 
cursor = connection.cursor() 

real_earnings = [] 
real_price = [] 
CAPE = [] 

SQLCommand = ("SELECT * FROM [Tableau].[dbo].[Country_table1$] Order by [Country] , [Date] ") 
df1 = pd.read_sql_query(SQLCommand, connection) 
total_rows = df1.iloc[:,1].count() 

dfs = {k: v for k, v in df1.groupby ('country')} 
print (dfs) 

for j in range(0, 1): 
    df = dfs['SPAIN'] 

回答

1

如果要遍历字典,你可以遍历它的键来访问其值:

for k in dfs: # k is the key 
    print(dfs[k]) # data associated with country `k` 

例子:

In [1]: pack_of_cards = {'2': 2,'3': 3,'4': 4,'5': 5,'6': 6, \ 
    ...:     '7': 7,'8': 7,'9': 9,'10': 10,'J': 10, \ 
    ...:     'D': 10,'K': 10,'T': 10} 

In [2]: for k in pack_of_cards: 
    ...:  print(k, pack_of_cards[k]) 
    ...:  
3 3 
T 10 
J 10 
9 9 
... 
+1

谢谢!它工作正常 –