繁体   English   中英

计算 pandas 中每一行列内的特定数值

[英]count number specific value within columns for each row in pandas

您好,我有一个 dataframe,例如:

Species COL1 COL2 COL3 COL4 COL5
SP1     0    0    0    1-2  0-1-2
SP2     1-2  2    0    1    0
SP3     0-1  1    2    0    1-2 

我想添加新列来计算每一行特定唯一值的数量,例如:

Species COL1 COL2 COL3 COL4 COL5  count_0 count_1-2 count_0-1-2 count_1 count_2 
SP1     0    0    0    1-2  0-1-2 3       1         1           0       0
SP2     1-2  2    0    1    0     2       1         0           1       1
SP3     0-1  1    2    0    1-2   1       1         0           2       1

请问有人知道吗?

例子

data = {'Species': {0: 'SP1', 1: 'SP2', 2: 'SP3'},
        'COL1': {0: '0', 1: '1-2', 2: '0-1'},
        'COL2': {0: '0', 1: '2', 2: '1'},
        'COL3': {0: '0', 1: '0', 2: '2'},
        'COL4': {0: '1-2', 1: '1', 2: '0'},
        'COL5': {0: '0-1-2', 1: '0', 2: '1-2'}}
df = pd.DataFrame(data)

代码

df1 = (df.set_index('Species').apply(lambda x: x.value_counts(), axis=1)
       .add_prefix('count_').fillna(0).astype('int'))

df1

         count_0    count_0-1   count_0-1-2 count_1 count_1-2   count_2
Species                     
SP1      3          0            1          0       1           0
SP2      2          0            0          1       1           1
SP3      1          1            0          1       1           1

制作所需的 output

连接 df 和 df1

pd.concat([df.set_index('Species'), df1], axis=1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM