我曾经使用面板代替带有多级索引的数据框,因为在处理大型数据集时它们似乎更快。但是现在我正在过渡到Midx框架。使用面板,我可以轻松地进行以下操作:
import pandas as pd
pan = pd.Panel(np.random.randn(3,5,2),items=['p1','p2','p3'],minor_axis=['a','b'])
然后添加一个新项目:
pan['p4'] = pd.DataFrame(np.random.randn(10,2),columns=['a','b'])
但是使用Midx:
cols = [['p1','p2','p3'],['a','b']]
idx = pd.MultiIndex.from_product(cols)
df_midx = pd.DataFrame(np.random.randn(10,6),columns=idx)
这会返回一个错误:
df_midx['p4'] = pd.DataFrame(np.random.randn(10,2),columns=['a','b'])
数值错误:传递的项数为2,而放置只能有1个。
p4 = pd.concat([samp], keys=['p4'],axis=1)
的目的是什么?有没有办法将ndf步骤合并? - MJS