2017-06-22 19 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