繁体   English   中英

相当于py中R的“表”

[英]Equivalent of “table” of R in python

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的新手,我搜索了很多,但我无法找到答案。 我应该提一下,我读过这篇文章,但我无法在我的案例中实现它?

我们可以用pandas crosstab做到这一点

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

计算出现次数R:

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

Python熊猫:

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

资料来源: R与Python - 一对一的比较


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

与R

table(cdc$gender,cdc$smoke100)

用python

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

资料来源: 看看这个答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM