标签:数据表 encoding 列表 axis where 笔记 处理 windows python
【例子1】来自bit.ly的1.usa.gov数据
1、文件位置描述:
正斜杠\反斜杠\混用都可以。如path="d:/python/ch01.txt"
首先,遇到的问题是pycharm的中文编码问题,注意IDEencoding改为utf-8,同时文件最开始加#-*- encoding:utf-8 -*-,同时含有中文的字符串记得加u。
2、文件读取首行:
open(path).readline()
3、JSON,一种web数据格式,python已有很多模块可以将json字符串转换成python字典,用法:
import json
path="ch01.txt"
records=[json.load(line) for line in open(path)]
此时records成为一组python字典了
显示字典第一行: records[0]
python的索引是从0开始的。给出以字符串形式表示的键就可以得到记录。如:records[0][‘tz‘]
4、在IPYTHON中,画图,应该用pylab模式打开才能看见图。在ipython中输入:%pylab或者加一句plt.show()
5、DataFrame是pandas中最重要的数据结构,它用于将数据表示为一个表格。从字典创建DataFrame的命令是:frame=DataFrame(records),此时frame是列行结构,frame[‘tz‘]是一个series对象,该对象有一个方法就是对值进行计数,tz_counts=frame[‘tz‘].value_counts()
计数之后,我们就可以根据统计值绘图,但是记录中存在两类问题,没有这个字段或者这个字段为空。那么我们要先填上一个替代值。方法:使用fillna函数替换缺失值(NA),未知值(空)使用布尔型数组索引加以替换:
clean_tz=frame[‘tz‘].fillna(‘Missing‘]
clean_tz[clean_tz==‘‘]=‘Unkown‘
tz_counts=clean_tz.value_counts()
5、pandas缺失值补充教程,参考:https://jingyan.baidu.com/article/93f9803fe29aece0e46f55cb.html
6、数据填充之后得到tz_counts 对象。该对象有plot方法可以用来画图。
tz_counts(:10).plot(kind=‘barh‘,rot=0)
7、接下来,利用字符串和表达式做一些数据处理工作。
results=Series([x.split()[0] for x in frame.a.dropna()])
#对于一个 Series,dropna 返回一个仅含非空数据和索引值的 Series
先将缺失的字段移除:cframe=frame[frame.a.notnull()]
其次,根据a的值计算出各行是否是windows;#np.where函数是一个矢量化ifelse函数
operating_system=np.where(cframe[‘a‘].str.contains(‘windows‘), ‘windows‘, ‘no windows‘)
接下来根据时区和操作系统列表对数据进行分组:by_tz_os=cframe.groupby(‘tz‘,operating_system)
然后通过size对分组结果进行计数(类似于value_counts),并利用unstack对计数结果进行重塑。
#下面是将tz按照operating_system进行分组并计数并用unstack进行展开并填充na为0
agg_counts=by_tz_os.size().unstack().fillna(0)
agg_counts[:10]
最后我们来选择最常出现的时区,根据agg_counts中的行数构建了一个间接索引数组:
#下面注意 sum函数 默认axis = 0,是普通加和,axis = 1是按行加和,argsort是从小到大排序并返回下表
indexer=agg_counts.sum(1).argsort()
indexer[:10]
通过take截取最后10行
count_subset=agg_counts.take(indexer)[-10:]
count_subset.plot(kind=‘barh‘,stacker=True)
plt.show() #下面进行比例展示 normed_subset = count_subset.div(count_subset.sum(1),axis = 0) normed_subset.plot(kind = ‘barh‘,stacked = True) plt.show()
《利用python进行数据分析》之《第二章引言》学习笔记_1
标签:数据表 encoding 列表 axis where 笔记 处理 windows python
原文地址:http://www.cnblogs.com/codingnostop/p/7510969.html