[英]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.