为什么 pd.crosstab 不起作用?
why pd.crosstab does not work?
数据来自书 "Python for Data Analysis",第 8 章,条形图
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
我测试tips'类型
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,我的pandas版本是'0.20.2',python3.6
size是dataframe的一个属性,用来获取其中的元素个数,如果你有size列,需要使用['size']
避免混淆:
pd.crosstab(tips.day, tips['size'])
数据来自书 "Python for Data Analysis",第 8 章,条形图
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
我测试tips'类型
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,我的pandas版本是'0.20.2',python3.6
size是dataframe的一个属性,用来获取其中的元素个数,如果你有size列,需要使用['size']
避免混淆:
pd.crosstab(tips.day, tips['size'])