熊猫:重塑数据框

蒂姆·舒尔茨

我有一个与熊猫有关的问题。我的数据框看起来像这样:

  id val1 val2
0  1     0    1
1  1     1    0
2  1     0    0
3  2     1    1
4  2     1    1
5  2     1    0
6  3     0    0
7  3     0    1
8  3     1    1
9  4     1    0
10 4     0    1
11 4     0    0

我想将其转换为类似:

             a         b        c
   id     a0   a1   b0   b1   c0   c1
    1     0    1    1    0    0    0
    2     1    1    1    1    1    0
    3     0    0    1    1    1    1
    4     1    0    0    1    0    0

我想到了类似添加一个由a,b和c循环枚举的sub_id列的操作,然后对框架进行拆栈。有没有更简单/更智能的解决方案?

非常感谢!

提姆

Valdi_Bo

可能的解决方案之一:

从将每个id的值重新格式化为一行开始:

res = df.set_index('id').groupby('id').apply(
    lambda grp: pd.Series(grp.values.flatten()))

现在的结果是:

    0  1  2  3  4  5
id                  
1   0  1  1  0  0  0
2   1  1  1  1  1  0
3   0  0  0  1  1  1
4   1  0  0  1  0  0

然后设置适当的列名称:

res.columns = pd.MultiIndex.from_tuples(
    [(x, x + y) for x in list('abc') for y in list('01')])

结局结果是:

    a     b     c   
   a0 a1 b0 b1 c0 c1
id                  
1   0  1  1  0  0  0
2   1  1  1  1  1  0
3   0  0  0  1  1  1
4   1  0  0  1  0  0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重塑数据框熊猫

来自分类Dev

重塑熊猫中的数据框

来自分类Dev

重塑熊猫中的数据框

来自分类Dev

如何重塑熊猫数据框?

来自分类Dev

数据透视后重塑熊猫数据框

来自分类Dev

熊猫数据框重塑以包含比较数据

来自分类Dev

重塑熊猫数据框,展平数据

来自分类Dev

从行到列重塑熊猫数据框

来自分类Dev

熊猫使用NaN旋转或重塑数据框

来自分类Dev

重塑熊猫数据框的堆栈/展开

来自分类Dev

如何重塑熊猫中的数据框?

来自分类Dev

重塑熊猫数据框(部分转置)

来自分类Dev

填充和重塑熊猫数据框

来自分类Dev

如何使用Pivot重塑熊猫数据框?

来自分类Dev

用重复值重塑熊猫数据框

来自分类Dev

使用多个索引重塑熊猫数据框

来自分类Dev

重塑熊猫数据框以匹配特定输出

来自分类Dev

重塑熊猫数据框(部分转置)

来自分类Dev

如何重塑/爆炸熊猫数据框?

来自分类Dev

重塑熊猫数据框分组变量

来自分类Dev

在多列上重塑熊猫数据框

来自分类Dev

动态重塑熊猫中的数据框

来自分类Dev

用数据透视表重塑熊猫中的数据框

来自分类Dev

重塑熊猫中的数据框以水平排列数据

来自分类Dev

Python熊猫很难进行数据框重塑

来自分类Dev

如何通过列值重塑熊猫数据框?

来自分类Dev

根据列中的重复值重塑熊猫数据框

来自分类Dev

在传递给Plotly函数之前,如何重塑熊猫数据框?

来自分类Dev

根据两列中的值重塑熊猫数据框