Nyx*_*nyx 5 python python-2.7 pandas
我有一个包含解释变量df的Multiindexed DataFrame和一个包含响应变量的DataFramedf_Y
# Create DataFrame for explanatory variables
np.arrays = [['foo', 'foo', 'foo', 'bar', 'bar', 'bar'],
[1, 2, 3, 1, 2, 3]]
df = pd.DataFrame(np.random.randn(6,2),
index=pd.MultiIndex.from_tuples(zip(*np.arrays)),
columns=['X1', 'X2'])
Run Code Online (Sandbox Code Playgroud)
# Create DataFrame for response variables
df_Y = pd.DataFrame([1, 2, 3], columns=['Y'])
Run Code Online (Sandbox Code Playgroud)
我只能在带索引的单级DataFrame上执行回归 foo
df_X = df.ix['foo'] # using only 'foo'
reg = linear_model.Ridge().fit(df_X, df_Y)
reg.coef_
Run Code Online (Sandbox Code Playgroud)
问题:然而,由于Y变量是两个层次相同的foo和bar,所以我们可以有两倍的回归样品,如果我们也有bar.
重塑/折叠/取消堆叠多级DataFrame的最佳方法是什么,以便我们可以利用所有数据进行回归?其他级别的行可能较少df_Y
对于令人困惑的措辞感到抱歉,我不确定正确的术语/措辞
可以删除第一个索引,然后连接将起作用:
df.index = df.index.drop_level()
df = df.join(df_Y)
Run Code Online (Sandbox Code Playgroud)