簡體   English   中英

Pandas - 使用 pivot_table 將 1 列中的每個唯一元素轉換為唯一列

[英]Pandas - use pivot_table to convert each unique element in 1 column into a unique column

我正在嘗試擴展 dataframe 以便對於一列的行中的所有唯一元素,每個值本身就成為一列。

我從看起來像這樣的 dataframe 開始。

     Colour Age    Type  Count
0    Black  11yrs  Cats  22
1    Black  12yrs  Cats  2
2    White  8yrs   Dogs  10
3    Brown  11yrs  Dogs  2
4    White  12yrs  Cats  14

我想更改 dataframe,使列是顏色列的唯一元素,黑色、白色、棕色 - 使其看起來像這樣:

    Age    Type   Black  White Brown 
0   11yrs  Cats   22     0     0   
1   12yrs  Cats   2      14     0
2   8yrs  Dogs    0      10    0
3   11yrs  Dogs   0      0     2

嘗試了幾種方法,但顯然我錯過了一些東西。

任何幫助表示贊賞。

您可以按如下方式使用pivot_table

(df.pivot_table(index=['Age', 'Type'], 
                columns='Colour', 
                values='Count', 
                fill_value=0).reset_index())

Out[22]:
Colour    Age  Type  Black  Brown  White
0       11yrs  Cats     22      0      0
1       11yrs  Dogs      0      2      0
2       12yrs  Cats      2      0     14
3        8yrs  Dogs      0      0     10

set_indexunstack

(df.set_index(['Age', 'Type', 'Colour']).Count.unstack(fill_value=0)
   .reset_index())

Out[23]:
Colour    Age  Type  Black  Brown  White
0       11yrs  Cats     22      0      0
1       11yrs  Dogs      0      2      0
2       12yrs  Cats      2      0     14
3        8yrs  Dogs      0      0     10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM