2017-07-19 7 views
0

以下は私のPythonコードです。私は自分のコードに疑問がありますPythonを使用してパーティション化されたpandasデータフレームにアクセスする方法

私は国に基づいて入力データフレームを分割しました。しかし、ループ内で各国のデータに個別にアクセスするにはどうすればよいですか? (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

ありがとう!それは正常に動作します –

関連する問題