python - 如何计算特定行在所有列中出现值的频率

标签 python pandas

假设我有一个包含四列的数据框,其中一部分如下:

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/

相关文章:

python - 在预先排序的 DataFrame 上使用 pandas groupby 的迭代顺序

python - 通过在附加新行的同时替换旧数据,将新数据合并到旧数据中

python-3.x - 如何在没有分隔符的情况下从 CSV 创建 Pandas 数据框(在 python 中)

python - 为什么 Python 3.x 的 super() 如此神奇?

python - 根据列元素中的单词(部分匹配或完整)将多个标签匹配到列

python - Python 中的主成分分析 : Analytical Mistake

python - 如何从ManyToOne表中只获取一个对象,而不是查询集?

python - 学习使用 pandas datareader 绘制雅虎股价,但似乎不正确

python - Pandas Dataframe 中的焊盘选择范围?

python - __nonzero__ 应该如何使用 Python C-API 实现?