2016-05-09 13 views
0

Ich habe ein bisschen eine schwierige Zeit zu verstehen, wie die Panel OLS in Pandas zu implementieren. Ich habe Hilfe zu diesem Thema erhalten und dachte, ich würde die Situation verstehen. Jetzt, wo ich versuche zu implementieren, habe ich Schwierigkeiten. Im Folgenden finden Sie meine Daten:Pandas: Probleme bei der Implementierung von Panel OLS

url='https://raw.githubusercontent.com/108michael/ms_thesis/master/crsp.dime.mpl.df.1' 



    df=pd.read_csv(url, usecols=(['date', 'cid', 'log_diff_rgdp', 'billsum_support', \ 
'years_exp', 'leg_totalbills', 'log_diff_rgdp', 'unemployment', 'expendituresfor',\ 
    'direct_expenditures', 'indirect_expenditures', 'Republican', 'sen']))) 
    df.head(1) 

    cid  date log_diff_rgdp unemployment leg_totalbills years_exp Republican sen  billsum_support  expendituresfor  direct_expenditures  indirect_expenditures 
0 N00013870 2007 0.026069 4.6  44 5 1.0  1.0  1.0  4.0  4.0  0.0 


df=df.T.to_panel() 

df=df.transpose(2,0,1) 

df 

<class 'pandas.core.panel.Panel'> 
Dimensions: 505 (items) x 10 (major_axis) x 72 (minor_axis) 
Items axis: N00000010 to N00035686 
Major_axis axis: 2005 to 2014 
Minor_axis axis: index to indirect_expenditures 

Es ist mein Verständnis (ich glaube ich daran falsch sein könnte), dass die Items axis alle der panels enthält; dass die Minor_axis alle Spalten in jedem der panels enthält; und dass die Major_axis die time index ist. Ich habe die erste Zeile meiner Daten vor dem Senden an Panel und billsum_support ist die vierte von der letzten Spalte geschrieben; aber wenn ich versuche, mit billsum_support als die Y Variable zurückzugehen, erhalte ich den folgenden Fehler.

reg=PanelOLS(y=df['billsum_support'],x=df[['years_exp', 'unemployment', 'dir_ind_expendituresfor']],time_effects=True) 
reg 
KeyError         Traceback (most recent call last) 
/home/jayaramdas/anaconda3/lib/python3.5/site-packages/pandas/indexes/base.py in get_loc(self, key, method, tolerance) 
    1875    try: 
-> 1876     return self._engine.get_loc(key) 
    1877    except KeyError: 

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4027)() 

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3891)() 

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12408)() 

pandas/hashtable.pyx in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:12359)() 

KeyError: 'billsum_support' 

Ich habe das Arbeitsbeispiel here gesehen, aber diese Person scheint ihre Daten in gestapelten Format statt Panel zu haben. Gibt es jemanden, der Erfahrung mit OLS Panel hat und verstehen kann, was ich hier falsch mache?

Antwort

0

Ich habe es; im Anschluss an ptrj, und einige einfache Erkundung zu tun, fand ich die Lösung und wird es in der Frage

df=df.pivot_table(index='date',columns='cid', fill_value=0,aggfunc=np.mean) 

df=df.T.to_panel() 

df=df.transpose(2,1,0) 

df=df.to_frame() 
Verwandte Themen