繁体   English   中英

特定间隔的数据透视表 pandas

[英]pivot table in specific intervals pandas

我有一个单列数据框,如下所示:

Neive Bayes
0   8.322087e-07
1   3.213342e-24
2   4.474122e-28
3   2.230054e-16
4   3.957606e-29
5   9.999992e-01
6   3.254807e-13
7   8.836033e-18
8   1.222642e-09
9   6.825381e-03
10  5.275194e-07
11  2.224289e-06
12  2.259303e-09
13  2.014053e-09
14  1.755933e-05
15  1.889681e-04
16  9.929193e-01
17  4.599619e-05
18  6.944654e-01
19  5.377576e-05

我想将它转为宽格式,但有特定的间隔。 前 9 行应构成第一行的 9 列,并继续此模式,直到最终表有 9 列且行数比现在少 9 倍。 我将如何实现这一目标?

使用pivot_table

df.pivot_table(columns=df.index % 9, index=df.index // 9, values='Neive Bayes')

              0             1             2             3             4  \
0  8.322087e-07  3.213342e-24  4.474122e-28  2.230054e-16  3.957606e-29   
1  6.825381e-03  5.275194e-07  2.224289e-06  2.259303e-09  2.014053e-09   
2  6.944654e-01  5.377576e-05           NaN           NaN           NaN   

          5             6             7             8  
0  0.999999  3.254807e-13  8.836033e-18  1.222642e-09  
1  0.000018  1.889681e-04  9.929193e-01  4.599619e-05  
2       NaN           NaN           NaN           NaN  

构建多指标, set_indexunstack

iix = pd.MultiIndex.from_arrays([np.arange(df.shape[0]) // 9, 
                                 np.arange(df.shape[0]) % 9])

df_wide = df.set_index(iix)['Neive Bayes'].unstack()

Out[204]:
              0             1             2             3             4  \
0  8.322087e-07  3.213342e-24  4.474122e-28  2.230054e-16  3.957606e-29
1  6.825381e-03  5.275194e-07  2.224289e-06  2.259303e-09  2.014053e-09
2  6.944654e-01  5.377576e-05           NaN           NaN           NaN

          5             6             7             8
0  0.999999  3.254807e-13  8.836033e-18  1.222642e-09
1  0.000018  1.889681e-04  9.929193e-01  4.599619e-05
2       NaN           NaN           NaN           NaN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM