相当于" table"在python中的R.

时间:2018-01-14 17:15:13

标签: python r

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

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

2 个答案:

答案 0 :(得分:11)

我们可以使用crosstab

中的pandas执行此操作
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

答案 1 :(得分:3)

计数事件 R:

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