pandas行到具有其他列的列

时间:2017-10-10 20:49:46

标签: python pandas pivot

假设我有以下数据帧df:

type  cat  val
a     x      3
a     x1     1
a     x2     3.5
b     x3     7
b     x4     2
c     x1     8

现在我想尝试获得如下内容:

type  cat1    val1    cat2   val2   cat3   val3   cat4   val4
a     x        3      x2     3.5     x2     7     nan    nan
b     x3       7      nan    nan     nan    nan   x4     2
c     x1       8      nan    nan     nan    nan   nan    nan

所以基本上我已经根据' cat'的独特价值创建了04个新列,然后分配了' val'相应地进入单元格,新表格由' type'索引。

这会是pandas pivot table会有帮助吗?

提前致谢。

干杯, 汤姆

1 个答案:

答案 0 :(得分:0)

我建议使用pd.pivot_table()

# make dataframe
df = pd.DataFrame({'type' : ['a']*3 + ['b']*2 + ['c'],
                   'cat' : ['x', 'x1', 'x2', 'x3', 'x4', 'x1'],
                   'val' : [3, 1, 3.5, 7, 2, 8]})

# pivot
df.pivot_table(index = 'type',
               columns = 'cat',
               values = 'val')

pivot

它没有您拥有的列,但确实减少了NaN的尺寸和数量。

希望这有帮助!