2017-06-22 2 views
0

Les données sont tirées du livre « Python pour l'analyse des données », chp 8, Parcelles Barpourquoi pd.crosstab ne fonctionne pas?

tips = pd.read_csv('ch8/tips.csv') 
party_counts = pd.crosstab(tips.day,tips.size) 

quand je lance les codes ci-dessus, je trouve que je ne peux pas obtenir le résultat comme le montre le livre.

In [70]: party_counts 
Out[70]: 
size 1 2 3 4 5 6 
day 
Fri 1 16 1 1 0 0 
Sat 2 53 18 13 1 0 
Sun 0 39 15 18 3 1 
Thur 1 48 4 5 1 3 

mon résultat est

In[36]: party_counts 
Out[36]: 
col_0 1708 
day   
Fri  19 
Sat  87 
Sun  76 
Thur  62 

Je teste le type de conseils

In[49]: tips.dtypes 
Out[49]: 
total_bill float64 
tip   float64 
sex   object 
smoker   object 
day   object 
time   object 
size   int64 
dtype: object 

alors que je trouve ce question qui a également une colonne est int peut obtenir le résultat du tableau croisé.

alors, quelque chose ne va pas avec moi? ps, ​​ma version de pandas géants est « 0.20.2 », python 3.6

Répondre

2

taille est un attribut de la trame de données pour obtenir le nombre d'éléments de celui-ci, si vous avez une colonne de taille, vous devez utiliser ['size'] pour éviter la confusion:

pd.crosstab(tips.day, tips['size']) 
+0

merci beaucoup. Ça marche. – Renke

+0

De rien. – Psidom