两个q:
1)是否可以创建具有不同“次要”索引的MultiIndex Pandas DataFrame,例如:
Col1 Col2
0
a 0.1 0.01
b 0.2 0.02
c 0.3 0.03
1
m 0.8 0.00
n 0.9 0.01
v 0.7 0.10
使用Pandas MultiIndex时,我只能设法为所有主要索引设置相同的次要索引。我想知道是否有办法指定不同的数组,所有数组都是相同的长度,作为次要指数?
2)说小指数(a,b,c,m,n,v)是浮点数。有没有办法使用pandas mean方法来平均这些值?到目前为止,我只能对未指定为索引的数据进行平均。
谢谢!
答案 0 :(得分:0)
是的,是的。
创建多级索引数据:
array = list(zip([0]*3,list('abc')))+list(zip([1]*5,list('vwxyz')))
array
输出:
[(0, 'a'),
(0, 'b'),
(0, 'c'),
(1, 'v'),
(1, 'w'),
(1, 'x'),
(1, 'y'),
(1, 'z')]
使用pd.MutliIndex创建索引并创建数据框:
idx = pd.MultiIndex.from_tuples(array,names=['one','two'])
df = pd.DataFrame({'Col1':np.random.random(8),'Col2':np.random.random(8)*10},index=idx)
print(df)
输出:
Col1 Col2
one two
0 a 0.747933 3.191390
b 0.020055 1.726661
c 0.342344 5.595333
1 v 0.298349 5.136354
w 0.445190 3.952943
x 0.921896 7.905128
y 0.782851 0.132475
z 0.259996 9.938946
总的意思是:
df.mean()
输出:
Col1 0.477327
Col2 4.697404
dtype: float64
用“一个”来表示:
print(df.groupby(level=0).mean())
输出:
Col1 Col2
one
0 0.370111 3.504461
1 0.541656 5.413169