如何使用pandas.DataFrame列作为索引,列和值?

时间:2015-02-24 19:07:04

标签: python indexing pandas

我似乎无法弄清楚如何以可搜索的方式提出这个问题,但我觉得这是一个简单的问题。

给定一个pandas Dataframe对象,我想使用一列作为索引,一列作为列,第三列作为值。

例如:

   a   b   c
0  1  dog  2 
1  1  cat  1
2  1  rat  6
3  2  cat  2
4  3  dog  1
5  3  cat  4

我想使用专栏' a'作为我的索引值,列' b'作为我的专栏和专栏' c'作为每个行/列的值,并为缺失值填充0(如果可能)。例如......

   dog   cat   rat
1   2     1     6
2   0     2     0
3   1     4     0

这将是一个' a' by' b'矩阵与' c'作为填充值

2 个答案:

答案 0 :(得分:3)

它(几乎)正如你所说的那样:

df.pivot_table(index="a", columns="b", values="c", fill_value=0)

给出

b  cat  dog  rat
a               
1    1    2    6
2    2    0    0
3    4    1    0

HTH

答案 1 :(得分:1)

http://pandas.pydata.org/pandas-docs/dev/reshaping.html

从您提供的示例数据框开始,

df.pivot(index='a', columns='b', values='c')

将产生您想要的输出。

FWIW,df.melt()是相反的转变。