web-dev-qa-db-fra.com

Équivalent de "table" de R en python

DansR, nous pouvons trouver la fréquence de chaque élément en utilisant table. Ceci est un exemple dansR:

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

Comment puis-je l’implémenter en python alors que x et y sont en tant que DataFrame? Je suis totalement nouveau en Python et j’ai beaucoup cherché, mais j’ai été incapable de trouver ma réponse. Je devrais mentionner que j'ai lu cet article mais je ne pouvais pas le mettre en œuvre dans mon cas?

5
Hadij

Nous pouvons faire cela avec crosstab à partir de 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
11
akrun

compter les occurrences R:

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

Pandas Python:

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

Source: R vs Python - Comparaison individuelle


Pour compter les occurrences entre deux colonnes

avec R

table(cdc$gender,cdc$smoke100)

avec du python

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

Source: regardez cette réponse

2
anasmorahhib