python - 在 python pandas 中创建交叉表,显示存在哪些值

标签 python pandas data-manipulation crosstab

给定以下数据:

pd.DataFrame(dict(
    name = ['a', 'a', 'a', 'b', 'b', 'b'],
    vals = [1, 2 , 3, 99, 3, 4]
))

看起来像:

  name  vals
0    a     1
1    a     2
2    a     3
3    b    99
4    b     3
5    b     4

我想知道如何创建以下内容:

     1     2    3      4     99
a  true  true  true  false  false
b  false false true  false  true

注意 - 上面的 truefalse 的确切值并不那么重要,我不知道如何创建这个表现在输入。

最佳答案

试试这个交叉表

s=pd.crosstab(df.name,df.vals).astype(bool)
Out[38]: 
vals     1      2     3      4      99
name                                  
a      True   True  True  False  False
b     False  False  True   True   True

关于python - 在 python pandas 中创建交叉表,显示存在哪些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61545177/

相关文章:

python - 在 Python 或 SQL 中像求解器一样使用 Excel

python - Pandas 聚合然后得到组平均值

python - 将日期和时间转换为时间戳

python - 将特定时区的日期时间对象转换为该时区的纪元秒

Python:将函数参数的默认值传递给 *args 或 **kwargs

python - pandas 中分组数据框的 astype 方法失败

python - 按组 ID 获取最后第 n 行的值总和

r - 如何使用 R 从列的每个单元格中删除重复的逗号分隔字符值

python - 在 Pandas 中操作子索引

python - 如何使用 Python 的 pip 下载和保存压缩包的文件?