【问题标题】:Equivalent of "table" of R in python相当于python中R的“表”
【发布时间】:2018-06-23 10:36:29
【问题描述】:

R 中,我们可以使用table 找到每个项目的频率。 这是 R 中的一个示例:

x <- c(1,1,1,1,2,2)
y <- c("a","a","b","a","a","b")
table(x,y)
#   y
#x   a b
#  1 3 1
#  2 1 1

当 x 和 y 作为 DataFrame 时,如何在 python 中实现它? 我是 Python 的新手,我搜索了很多,但我找不到我的答案。我应该提到我阅读了this article,但我无法在我的情况下实现它?

【问题讨论】:

  • 试试crosstab
  • 处理表格数据,Python有一个非常好的库——Pandas。阅读这 10 分钟的介绍,您将能够轻松处理表格操作任务。
  • @akrun 非常感谢。 pd.crosstab(X,Y) 正是我所需要的。
  • @TrigonaMinima 谢谢你,我会复习的。实际上,我经常使用基本的 Panda,但交叉表对我来说是新的。

标签: python r


【解决方案1】:

我们可以使用来自pandascrosstab 来做到这一点

import numpy as np;
import pandas as pd;
x = np.array([1, 1, 1, 1, 2, 2]);
y = np.array(["a", "a", "b", "a", "a", "b"]);
pd.crosstab(x, y, rownames = ['x'], colnames = ['y']);
#  y  a  b
#x
#1  3  1
#2  1  1

【讨论】:

    【解决方案2】:

    计算出现次数 回复:

    sort(table(df$source), decreasing = TRUE)
    

    Python 熊猫:

    df.source.value_counts() 
    #or
    df["source"].value_counts()
    

    来源:R vs Python - a One-on-One Comparison


    用于计算两列之间的出现次数

    与R

    table(cdc$gender,cdc$smoke100)
    

    用python

    pd.crosstab(index=df['gender'], columns=df['smoke100'])
    

    来源:look at this answer

    【讨论】:

      猜你喜欢
      • 2014-10-31
      • 2011-06-25
      • 2012-08-25
      • 2019-07-14
      • 2012-05-27
      • 2014-12-22
      • 1970-01-01
      • 2017-09-10
      相关资源
      最近更新 更多