在Pandas 中,我希望有一个数据帧,它的一些列有多个索引,有些没有.
从视觉上看,我喜欢这样的东西:
| c | |
|--------| d |
| a | b | |
================|
| 1 | 4 | 0 |
| 2 | 5 | 1 |
| 3 | 6 | 2 |
在Pandas 身上,我可以做这样的事情:
df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6], 'd':[0,1,2]})
columns=[('c','a'),('c','b'), 'd']
df.columns=pd.MultiIndex.from_tuples(columns)
输出结果将是:
c d
a b NaN
0 1 4 0
1 2 5 1
2 3 6 2
然而,当访问d
列乘以df['d']
时,我得到的输出是Pandas Dataframe,而不是Pandas series.问题显然是pandas对每一列都应用了多列索引.所以我的问题是:有没有一种方法可以只对某些列应用列多索引,而对其他列保持原样?
换句话说,我希望df['d']
的结果将是一个序列,就像在普通数据帧中一样,df['c']
是一个pd.DataFrame的结果,就像在列MULTINDEX中一样,而df['c']['a']
是Pandas 系列的结果.这个是可能的吗?