说明:本文章为Python数据处理学习日志,记录内容为实现书本内容时遇到的错误以及一些与书本不一致的地方,一些简单操作则不再赘述。日志主要内容来自书本《利用Python进行数据分析》,Wes McKinney著,机械工业出版社。
这篇博文主要是为了补全python处理数据系列,所以写的比较简略,并没有太多代码,主要说明一下这一章可能会遇到的几个问题。
1、P242的三个绘图函数
Rectangle的三个参数分别为:左下顶点坐标,长,宽;
Circle的两个参数为:圆心,半径;
Polygon的三个参数为:三个顶点的坐标。
alpha为透明度。
绘出来的图看起来像椭圆,是因为xy轴比例不一样,调整窗口大小就可以看到确实是圆。
2、P249
tips = pd.read_csv('tips.csv')
party_counts = pd.crosstab(tips.day,tips.size)
party_counts
Out[13]:
col_0 1708
day
Fri 19
Sat 87
Sun 76
Thur 62
这个结果和书上的不一样,原因在于列名size:
tips.day[:5]
Out[17]:
0 Sun
1 Sun
2 Sun
3 Sun
4 Sun
Name: day, dtype: object
tips.size
Out[18]: 1708
size是tips的自带属性,于是其不能作为列名显示其内容,就会出现上述的结果。任意将size改成people_size或者其他名字均可(在csv直接改即可),就可得到书本上的结果。后续也要注意此处的名字有所修改。
tips = pd.read_csv('tips.csv')
party_counts = pd.crosstab(tips.day,tips.people_size)
party_counts
Out[21]:
people_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
3、P256三个函数
下面定义的三个函数是干什么的,我们举例说明。
先看data中的一条数据:
data[1:2]
Out[28]:
Serial INCIDENT TITLE INCIDENT DATE LOCATION \
1 4051 Food-Aid sent to Fondwa, Haiti 28/06/2010 23:06 fondwa
DESCRIPTION \
1 Please help food-aid.org deliver more food to ...
CATEGORY LATITUDE LONGITUDE \
1 1. Urgences | Emergency, 2. Urgences logistiqu... 50.226029 5.729886
APPROVED VERIFIED
1 NO NO
data[1:2].CATEGORY
Out[29]:
1 1. Urgences | Emergency, 2. Urgences logistiqu...
Name: CATEGORY, dtype: object
在csv中查看该条数据的CATEGORY为:
'''|前是非英文名,之后是英文名'''
1. Urgences | Emergency, 2. Urgences logistiques | Vital Lines,
首先,第一个函数是将每条CATEGORY根据“,”分割,并存入数组返回。
上面一条记录分割后的结果为:
['1. Urgences | Emergency',
'2. Urgences logistiques | Vital Lines']
第二个函数接受第一个函数的结果,将所有结果剔除相同的,得到一个不重复的CATEGORY集合,目的是为了得到所有出现在表格中的分类。
第三个函数是为了得到分类的英语名,上述记录会被分割为:
['1', 'Emergency']
['2', 'Vital Lines']