2017-06-22 5 views
0

Die Daten sind aus dem Buch "Python for Data Analysis", chp 8, Bar Plotswarum pd.crosstab nicht funktioniert?

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

, wenn ich die oben genannten Codes laufen, finde ich, ich kann nicht das Ergebnis als das Buch zeigt bekommen.

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 

mein Ergebnis ist

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

Ich teste Tipps Typ

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

während ich diesen question gefunden, die auch eine Spalte ist int das Kreuztabellen- Ergebnis bekommen.

also, alles falsch mit mir? ps, ​​meine Pandas Version ist ‚0.20.2‘, Python 3.6

Antwort

2

Größe ist ein Attribut des Datenrahmen die Anzahl der Elemente von ihm zu bekommen, wenn Sie eine Größe Spalte haben, müssen Sie ['size'] verwenden Verwechslung vermeiden:

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

vielen dank. Es klappt. – Renke

+0

Gern geschehen. – Psidom