簡體   English   中英

在 python pandas 中創建交叉表,顯示哪些值存在

[英]Create cross-tabulation in python pandas showing which values are present

給出以下數據:

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的確切值並不那么重要,我現在不知道如何創建這種類型的表。

試試這個crosstab

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

也可以get_dummies然后沿names聚合

pd.get_dummies(df.set_index('name').vals).any(level=0) 
                                        #.max(level=0) for 1/0 dummies
                                        #.sum(level=0) for counts

暫無
暫無

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

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