Pandas 交叉表数据框并将新列设置为 True/False/Null 基于它们是否存在以及基于另一列
Pandas crosstab dataframe and setting the new columns as True/False/Null based on if they existed or not and based on another column
如标题所述,我想 pivot/crosstab 我的数据框
假设我有一个如下所示的 df:
df = pd.DataFrame({'ID' : [0, 0, 1, 1, 1],
'REV' : [0, 0, 1, 1, 1],
'GROUP' : [1, 2, 1, 2, 3],
'APPR' : [True, True, NULL, NULL, True})
+----+-----+-------+------+
| ID | REV | GROUP | APPR |
+----+-----+-------+------+
| 0 | 0 | 1 | True |
| 0 | 0 | 2 | True |
| 1 | 1 | 1 | NULL |
| 1 | 1 | 2 | NULL |
| 1 | 1 | 3 | True |
+----+-----+-------+------+
我想做一些旋转,所以 table 的结果看起来像
+----+-----+------+------+-------+
| ID | REV | 1 | 2 | 3 |
+----+-----+------+------+-------+
| 0 | 0 | True | True | False |
| 1 | 1 | NULL | NULL | True |
+----+-----+------+------+-------+
现在 GROUP 列中的值变成了自己的列。这些列中每一列的值都是 T/F/NULL,仅基于 T/NULL 部分的 APPR。当 ID REV 组合不存在该组时,我希望它为 False。
我之前问过类似的问题,但我不确定如何让这个答案适用于我的新场景:
希望有道理!
你尝试过旋转吗?
pd.pivot(df, index=['ID','REV'], columns=['GROUP'], values='APPR').fillna(False).reset_index()
如标题所述,我想 pivot/crosstab 我的数据框
假设我有一个如下所示的 df:
df = pd.DataFrame({'ID' : [0, 0, 1, 1, 1],
'REV' : [0, 0, 1, 1, 1],
'GROUP' : [1, 2, 1, 2, 3],
'APPR' : [True, True, NULL, NULL, True})
+----+-----+-------+------+
| ID | REV | GROUP | APPR |
+----+-----+-------+------+
| 0 | 0 | 1 | True |
| 0 | 0 | 2 | True |
| 1 | 1 | 1 | NULL |
| 1 | 1 | 2 | NULL |
| 1 | 1 | 3 | True |
+----+-----+-------+------+
我想做一些旋转,所以 table 的结果看起来像
+----+-----+------+------+-------+
| ID | REV | 1 | 2 | 3 |
+----+-----+------+------+-------+
| 0 | 0 | True | True | False |
| 1 | 1 | NULL | NULL | True |
+----+-----+------+------+-------+
现在 GROUP 列中的值变成了自己的列。这些列中每一列的值都是 T/F/NULL,仅基于 T/NULL 部分的 APPR。当 ID REV 组合不存在该组时,我希望它为 False。
我之前问过类似的问题,但我不确定如何让这个答案适用于我的新场景:
希望有道理!
你尝试过旋转吗?
pd.pivot(df, index=['ID','REV'], columns=['GROUP'], values='APPR').fillna(False).reset_index()