假设我有一个包含四列的数据框,其中一部分如下:
C1 C2 C3 C4
60 60 60 60
59 59 58 58
0 0 0 0
12 13 13 11
现在我想创建四列,每一列对应于每个值的频率,考虑到其他三列,例如这些列的外观:
F1 F2 F3 F4
4 4 4 4
2 2 2 2
2 2 2 2
1 2 2 1
在单元格 1,1 中,值为 4,因为值 60 出现在特定行的所有列中。 在单元格 4,1 中,该值为 1,因为 12 没有出现在特定行的其他列中。 我需要计算并添加 pandas 数据框中的特征 F1、F2、F3、F4。
最佳答案
使用apply
axis=1
用于按 map
的行进行处理按频率 value_counts
:
df = df.apply(lambda x: x.map(x.value_counts()),axis=1)
print (df)
C1 C2 C3 C4
0 4 4 4 4
1 2 2 2 2
2 4 4 4 4
3 1 2 2 1
关于python - 如何计算特定行在所有列中出现值的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45252067/