假设我们有这样一个数据帧。在
df = pd.DataFrame(np.random.randn(10,5), columns=['a','b','c','d','e'])
idx = np.random.randint(0,2,(10,5))
df = abs(df * idx)
在我的具体案例中
^{pr2}$我想计算每个非零块的平均值。例如,倒数第二列(d列)将产生一系列形式:
0 0.000000
1 0.400287
2 0.000000
3 0.11662267564906763
4 0.11662267564906763
5 0.11662267564906763
6 0.000000
7 1.006561
8 0.000000
9 0.000000
澄清:
我所说的非零块是指对于任何给定列,那些具有连续非零项的块。例如,a列有2个块,一个出现在index=4,value=0.136868处,另一个出现在index=8,9,value=[0.6510601040841]处。我要每个街区的平均值。在
澄清2: 对于列a,输出将是
0 0.000000
1 0.000000
2 0.000000
3 0.000000
4 0.136868
5 0.000000
6 0.000000
7 0.000000
8 0.8459504999999999
9 0.8459504999999999
其中位置8,9得出最后两个条目的平均值。在
您可以首先通过^{} 和^{} 到
df1
获得一组连续值:然后^{} 按来自}的组,使用^{} :
^{pr2}$df
的列,每个来自{如果需要所有列的输出,请使用带^{} 的列表理解:
相关问题 更多 >
编程相关推荐