python - Pandas pivot dataframe 并根据它们是否存在将新列设置为 Tr

如标题所述,我想旋转我的数据框(我认为它需要旋转?)

假设我有一个看起来像这样的 df:

df = pd.DataFrame({'ID' : [0, 0, 1, 1, 1], 
                   'REV' : [0, 0, 1, 1, 1],
                   'GROUP' : [1, 2, 1, 2, 3]})


+----+-----+-------+
| ID | REV | GROUP |
+----+-----+-------+
|  0 |   0 |     1 |
|  0 |   0 |     2 |
|  1 |   1 |     1 |
|  1 |   1 |     2 |
|  1 |   1 |     3 |
+----+-----+-------+

我想做一些旋转,所以我的表格结果看起来像

+----+-----+------+------+-------+
| ID | REV |  1   |  2   |   3   |
+----+-----+------+------+-------+
|  0 |   0 | True | True | False |
|  1 |   1 | True | True | True  |
+----+-----+------+------+-------+

现在 GROUP 列中的值变成了自己的列。这些列中每一列的值都是 T/F,取决于原始 df 是否有该组。

有什么建议吗?这看起来像是一个枢轴的东西,但在使用枢轴方面我是个大菜鸟

最佳答案

尝试使用crosstab

out = pd.crosstab([df.ID,df.REV],df.GROUP).ne(0).reset_index().rename_axis(None,axis=1)
out
   ID  REV     1     2      3
0   0    0  True  True  False
1   1    1  True  True   True

关于python - Pandas pivot dataframe 并根据它们是否存在将新列设置为 True/False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67319391/

相关文章:

python - 如何将有效值传入 cleartext_keyset_json 以创建 Tink k

r - 按组计算数据框中出现的连续月份

c - C 版本是否向后兼容?

rust - 如何结合 `Ord::cmp()`中的两个cmp条件

Python - 用于从文本中获取特定行的正则表达式

rust - Rust 中枚举的展平向量

python - For 循环得到错误说 (odd number - odd number)/2 i

regex - 我如何在 vim 中翻译正则表达式以与 sed 一起工作?

nlp - 如何为 T5 模型使用 forward() 方法而不是 model.generate()

generics - 如何使通用形式参数别名