我希望您能够统计不同列中相同值的数量。 这里有一个更好的解释,我有这个 df(数据框)
df= pd.DataFrame([['Id1',1, 0, 'b', 'j'], ['Id2', 0, 2, 'c', 'g'], ['Id2',0, 1, 2,'je']])
df= df.rename({0:'IDcol', 1:'col1', 2:'col2', 3:'col3', 4:'col4'}, axis=1)
df
将显示以下数据框:
IDcol col1 col2 col3 col4
0 Id1 1 0 b j
1 Id2 0 2 c g
2 Id2 0 1 2 je
然后计算col1和col2中的所有值,得到类似以下结果:
values count
0 0 3
1 1 2
2 2 1
作为额外部分,应该很容易按ID列进行分组,然后获得类似于以下内容:
Id values count
0 Id1 0 1
1 Id1 1 1
2 Id1 2 0
3 Id2 0 2
4 Id2 1 1
5 Id2 2 0
我已经尝试了groupby、size和values_count的不同组合,但是我的size和value_count知识还不够广泛,所以可能会漏掉一些东西。
我认为也可以使用列表推导来实现,但如果可以使用pandas函数,处理时间会更好。
注:
1)此示例中使用int,但这也适用于字符串。
2)最好手动输入值。