我有两个多索引数据帧
以及
把两者相乘,这样我就得出:
我一般怎么做?注意,可能存在任意数量的foo
变量,每个变量可能包含任意数量的bar
变量。你知道吗
下面是复制两个原始数据帧df_1
和df_2
的代码:
vals_1 = pd.np.random.rand(2, 4) * 100
tuples_1 = [('A', 'P'), ('A', 'Q'), ('B', 'R'), ('B', 'S')]
idx_1 = pd.MultiIndex.from_tuples(tuples_1, names=['foo', 'bar'])
df_1 = pd.DataFrame(vals_1, columns=idx_1)
rs = pd.np.random.rand(2, 1)
rs2 = pd.np.random.rand(2, 1)
vals_2 = pd.np.concatenate([rs, 1 - rs, rs2, 1 - rs2], axis=1)
tuples_2 = [('A', 'spam'), ('A', 'eggs'), ('B', 'spam'), ('B', 'eggs')]
idx_2 = pd.MultiIndex.from_tuples(tuples_2, names=['foo', 'qux'])
df_2 = pd.DataFrame(vals_2, columns=idx_2)
我提出的一个不令人满意的方法涉及
pd.melt
和pd.pivot_table
:理想情况下,会有一个不太迂回的解决方案,始终保留多索引结构。你知道吗
相关问题 更多 >
编程相关推荐