今天我们将一个 Series 序列数据转为 DataFrame结构。我们将用么 pd.cut() 对数据进行分箱,也会用到 NumPy 的 np.reshape() 对阵列数据进行变形。接下来我们看看具体的需求,再分析一下解决思路,最后用代码实现它。
需要转为以下形式。对数列整体等分划为三部分,每个部分有两列,前四个在第一列,后四个在第二列,同时对每份数据指定了同名的索引标签。
为了方便后续操作,可以将数据先转为 DataFrame,这样我们就可以新增加辅助列了。由于要对现有数据等份划分,我们可以我是利用 pd.cut() 数据分箱来完成,对它指定箱子数量,可以帮助我们进行平均划分,为了方便识别我们在分箱后对每个箱子的标签进行指定。
接下来,按箱子的标签进行分组,每个组就是要分在一起的数据,我们写一个函数对这些数据进行处理,拼接成想要的数据格式。
处理分组的函数可以这样设计,由于它接收的数据只有一列,我们将它 用 NumPy 的 np.reshape() 进行形状变化,变化后构造为 DataFrame,同时给出列和行的标签值。
我们将上述的思路进行代码实现。先将 Series 转为 DataFrame,列名为 x,用 pd.cut() 增加 y 辅助列,用来标识要分在一起的值:
最后将变形后的数据构造为 DataFrame,指定行列返回。
最后分组并应用这个函数,最终代码为:
这样我们就完成了需求。