2017-06-22 22 views
0

的數據是從書「的Python數據分析」,熱電聯產8,酒吧地塊爲什麼pd.crosstab不起作用?

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

當我運行上面的代碼,我發現我不能得到的結果作爲書所示。

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 

我的結果是

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

我考試祕笈型

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

而我發現這個question其中也有一列是INT可以得到交叉的結果。

那麼,我有什麼不對? PS,我的熊貓版「0.20.2」,蟒蛇3.6

回答

2

大小是數據框的屬性,從它那裏得到的元素個數,如果你有一個大小列,您需要使用['size']來避免混淆:

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

非常感謝。有用。 – Renke

+0

不客氣。 – Psidom