【发布时间】:2018-10-21 00:59:35
【问题描述】:
我有一个 pandas 数据框,其中有两个我认为是唯一标识符的组合,然后是一个可以具有不同值的单列“C”。因此,同一个唯一标识符可以重复的次数与它所具有的不同“C”值的数量一样多。
import pandas as pd
data = {'A' : ['000001','000001','000001','000001','000002','000002','000003'],
'B' : ['1A','1A','1C','1D','1A','1A','1D'],
'C' : ['003','012','016','003','020','012','053']}
df = pd.DataFrame(data)
+-------------------+
| A | B | C |
+-------------------+
| 000001 | 1A | 003 |
| 000001 | 1A | 012 |
| 000001 | 1C | 016 |
| 000001 | 1D | 003 |
| 000002 | 1A | 020 |
| 000002 | 1A | 012 |
| 000003 | 1D | 053 |
+-------------------+
我想根据 A、B 对行进行分组,然后转出 C 列并将它们变成假人。这就是我需要的最终输出的样子:
+----------------------------------------------------+
| A | B | C_003 | C_012 | C_016 | C_020 |C_053 |
+----------------------------------------------------+
| 000001 | 1A | 1 | 1 | 0 | 0 | 0 |
| 000001 | 1C | 0 | 0 | 1 | 0 | 0 |
| 000001 | 1D | 1 | 0 | 0 | 0 | 0 |
| 000002 | 1A | 0 | 1 | 0 | 1 | 0 |
| 000003 | 1D | 0 | 0 | 0 | 0 | 1 |
+----------------------------------------------------+
我真的不擅长数据透视表,但也不确定数据透视表是否可以让我得到我想要的输出。我正在寻找一个超级高效的过程,因为实际数据有更多的列作为标识符的一部分(如 A、B)、数千个可能的 C 值和数百万行。有什么想法吗?
【问题讨论】:
标签: python pandas dataframe pivot dummy-variable