2016April Python学习笔记(pandasecharts)
2016April Python学习笔记
Git学习
git(/ɡɪt/,关于这个音频文件 音频(帮助·信息))是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools[6](一个类似Norton Commander界面的文件管理器)有所不同。维基百科
廖雪峰Git教程
1.本地提交
- 第一步:$git init 把这个目录变成git可以管理的仓库
- 第二步:$git add readme.txt
Unix的哲学是“没有消息就是好消息”,说明添加成功。 第三步:$git commit -m “wrote a readme file” 提交(本次提交的说明)
(PS: commit之前需要add)常用git命令:
- $git cat readme.txt 查看readme.txt内容
- $git status 掌握仓库的当前状态
- $git diff readme.txt
- $git log 日志功能
- $git log –pretty=oneline
- $git reset –hard HEAD^ (回退到上一个版本)
- $git reset –hard HEAD^ ^(回退到上上个版本)
- $git reset –hard HEAD~100(回退到上100个版本)
- $git reset –hard dc5f1d1(只要记得版本号就可以穿梭回到现代)
- $git reflog (可以查看使用过的命令,版本)
2.撤销修改
1.还没add
- $git checkout – readme.txt
2.add但是还没commit
- $git reset HEAD readme.txt
- $git checkout – readme.txt
3.已经commit
- 版本回退$git reset –hard dc5f1d1
在本地删除文件,有两种选择:
- $git rm test.txt(版本库中也删除)
- $git checkout – test.txt(误删本地文件,从版本库中恢复)
3.远程仓库
利用github作为免费托管的git仓库~
- 1.添加ssh key
- 2.$ git remote add origin git@github.com:crazyM7/hello-python.git
然后会提示:
fatal: remote origin already exists. - 3.$ git remote rm origin 移除origin
- 4.重复2
- 5.$ git push -u origin master
会提示:
! [rejected] master -> master (fetch first)
error: failed to push some refs to ‘git@github.com:crazyM7/hello-python.git’
PS:出现错误的主要原因是github中的README.md文件不在本地代码目录中 - 6.可以通过如下命令进行代码合并【注:pull=fetch+merge】
git pull –rebase origin master
PS:每次使用命令提交进行版本控制很麻烦,可以选择工具:SourceTree
附上mac简单命令:
- $mkdir learngit 创建learngit文件夹
- $cd learngit 进入learngit目录
- $pwd 显示当前目录
- $cd ~/Desktop 进入到桌面目录
- $touch readme.txt 新建txt文档
- $rm test.txt 删除文件
- $cp readme.txt learngit 拷贝文件到laerngit目录
Python爬虫学习
学习地址:《Python爬虫学习系列教程》学习笔记
实战:
Python爬虫实战一之爬取糗事百科段子
使用urllib2库和正则表达式抓取静态新闻网站十篇英文新闻,并统计每篇文章tf-idf的top10保存到txt文件中:
刚学了几天python写的,代码写得很烂:
#coding=utf-8import math
import json
#coding=utf-8import urllib
import urllib2
import re
import string
import sys
import osurl = ['http://www.chinadaily.com.cn/china/2016-04/12/content_24471420.htm']
url.append('http://www.chinadaily.com.cn/china/2016-04/12/content_24470515.htm')
url.append('http://www.chinadaily.com.cn/business/2016-04/12/content_24457629.htm')
url.append('http://www.chinadaily.com.cn/business/2016-04/09/content_24397697.htm')
url.append('http://www.chinadaily.com.cn/business/2016-04/09/content_24397290.htm')
url.append('http://www.chinadaily.com.cn/business/chinadata/2016-03/16/content_23898438.htm')
url.append('http://www.chinadaily.com.cn/business/2016-04/12/content_24460897.htm')
url.append('http://www.chinadaily.com.cn/business/2016-04/12/content_24470803.htm')
url.append('http://www.chinadaily.com.cn/business/2016-04/12/content_24455437.htm')
url.append('http://www.chinadaily.com.cn/business/2016-04/12/content_24481250.htm')
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent' : user_agent}try:for i in range(10):request = urllib2.Request(url[i],headers=headers)response = urllib2.urlopen(request)content = response.read().decode('utf-8')title_pattern = re.compile('div.*?Title_e">(.*?)</div>',re.S)title_items = re.findall(title_pattern,content)title_mypat = re.compile(r'<h1.*?>(.*?)</h1>')title_myitem = re.findall(title_mypat,title_items[0])filename = str(i+1)+'.txt'print filenamef = open(filename, 'w+')f.write(title_myitem[0])f.write('\n')pattern = re.compile('div.*?Content">.*?<table.*?</table>(.*?)<div.*?width',re.S)items = re.findall(pattern,content)mypat = re.compile(r'.*?<p>(.*?)</p>.*?')if(items.__len__()>0):myitem = re.findall(mypat,items[0])len = myitem.__len__()#a = []#for j in range(len):#a.append(re.split(r' |,|\(|\)|\.',str(myitem[j])))#print afor j in range(len):f.write(myitem[j])except urllib2.URLError,e:if hasattr(e,"code"):print e.codeif hasattr(e,"reason"):print e.reasont=0
Dict_idf ={}
Dict_tf = {}DicList =[]for j in range(10):f_name = str(j+1)+'.txt'f = open(f_name)mystr = f.read()f.close()#print mystr.__len__()len = mystr.__len__()#print lenstr_p = ""myarticle = []for i in range(len):if mystr[i]=='.' or mystr[i]==',':if i<len-1 and mystr[i+1]>='0' and mystr[i+1]<='9':str_p = str_p.__add__(mystr[i])elif str_p=="":continueelse:#print str_pmyarticle.append(str_p)str_p=""elif mystr[i]=='(' or mystr[i]==')' or mystr[i]==' ' or mystr[i]=='"':if str_p == "":continueelse:#print str_pmyarticle.append(str_p)str_p = ""else:str_p = str_p.__add__(mystr[i])#print myarticle.__len__()Dict_tf = {}for i in range(myarticle.__len__()):if not Dict_tf.has_key(myarticle[i]):Dict_tf[myarticle[i]] =1.0if not Dict_idf.has_key(myarticle[i]):Dict_idf[myarticle[i]] =1.0else:Dict_idf[myarticle[i]] +=1.0else:Dict_tf[myarticle[i]] +=1.0#print myarticle[i],Dict_tf[myarticle[i]]#print Dict_tf.__len__()DicList.append(Dict_tf)for k,v in Dict_tf.items():Dict_tf[k] = Dict_tf[k]/myarticle.__len__()#for k, v in Dict_tf.items():#print k,v
for k,v in Dict_idf.items():Dict_idf[k] = math.log(10.0/Dict_idf[k])
#for k,v in Dict_idf.items():#print k,vres = ""
res = res.__add__("{")
res = res.__add__("\n")
res = res.__add__("\t[\n")for j in range(10):Dictf_idf = DicList[j]for k,v in Dictf_idf.items():Dictf_idf[k] = Dictf_idf[k]*Dict_idf[k]Dictf_idf = sorted(Dictf_idf.iteritems(), key=lambda d: d[1], reverse=True)f_name = str(j+1)+'.txt'f = open(f_name)mystr = f.read()f.close()mytitle=""data= {}for i in range(mystr.__len__()):if mystr[i]=='\n':#print mytitleres = res.__add__("\t\tarticle_titile:\"")res = res.__add__(mytitle)res = res.__add__("\"\n")res = res.__add__("\t\t[\n")for tt in range(10):res = res.__add__("\t\t\t{\n")res = res.__add__("\t\t\t\tword:\"")res = res.__add__(Dictf_idf[tt][0])res = res.__add__("\"\n")res = res.__add__("\t\t\t\tvalue:")res = res.__add__(str(Dictf_idf[tt][1]))res = res.__add__("\n")res = res.__add__("\t\t\t}\n")res = res.__add__("\t\t]\n")else:mytitle = mytitle.__add__(mystr[i])res = res.__add__("\t]\n")
res = res.__add__("}")
#print reschangeflie = 'tf-idf.txt'
fp = open(changeflie,'w+')
fp.write(res)
fp.close()
后来学习了beautifulsoup之后,重新实现的代码:
使用Python爬取十篇新闻统计TF-IDF
beautiful soup学习:
学习地址:Python爬虫利器二之Beautiful Soup的用法
Pandas学习
Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。百度百科
学习地址:
- Python 数据分析包:pandas 基础
- 10minutes to pandas
- 10minutes to pandas中文版
Series 和 DataFrame 分别对应于一维的序列和二维的表结构。
pandas 约定俗成的导入方法如下:
from pandas import Series,DataFrame
import pandas as pd
- Series 可以看做一个定长的有序字典。基本任意的一维数据都可以用来构造 Series 对象
- DataFrame 是一个表格型的数据结构。DataFrame 的构造方法与 Series 类似,只不过可以同时接受多条一维数据源,每一条都会成为单独的一列
常用函数:
- 切片:
df[:2]
df["one":"three"]
df.ix[:2,:3] #前两行三列
df.ix[:,"year":"year"]
- 使用函数:
f = lambda x:x.max()-x.min()
df.apply(f,axis=0)
df.apply(f,axis=1)
- 用numpy统计个数:
ucount = np.array(df['username']!='-1').sum()
- 同时统计多列满足条件的个数:
subject_list = ['math','english','music']
count_list = (df[df['username']!='-1'].loc[:, subject_list]).apply(lambda x: (x > 0).sum(), axis=0)
for pos,x in enumerate(count_list):mydict[subject_list[pos]] = x
- 统计单列不同分组的个数
didf = df[df['username']!=-1].groupby('sex')['id'].count()
mydict['man'] = didf['man']
mydict['woman'] = didf['woman']
Echarts学习
Echarts是数据可视化的神器
官网地址:http://echarts.baidu.com/
下面是简单的例子:
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>ECharts</title><!-- 引入 echarts.js --><script src="echarts.min.js"></script>
</head>
<body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));option = {title: {text: '到课率',subtext: '@monkey'},tooltip: {trigger: 'axis'},toolbox: {show: true,feature: {dataZoom: {},dataView: {readOnly: false},magicType: {type: ['line', 'bar']},restore: {},saveAsImage: {}}},xAxis: {type: 'category',boundaryGap: false,data: ['6-9','6-10','6-11','6-12']//data: [{{ mydict['days']|join(',') }}]},yAxis: {type: 'value',axisLabel: {formatter: '{value} %'}},series: [{name:'到课率',type:'line',data:[80, 85, 87, 90],markPoint: {data: [{type: 'max', name: '最大值'},{type: 'min', name: '最小值'}]},markLine: {data: [{type: 'average', name: '平均值'}]}},]};// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);</script>
</body>
</html>
sphinx学习
学习地址:
- 利用Sphinx轻松生成python代码的文档
- sphinx将python的注释生成文档例子
常用软件
翻墙:
- 1.shadowsocksX(代理软件)
- 2.https://monocloud.net/(网站地址,出售服务器使用权) 35RMB/季
安装pip:
$wget https://bootstrap.pypa.io/get-pip.py
$sudo python get-pip.py
安装jupyter:
$pip install jupyter
$jupyter notebook
安装使用jupyter(原来的notebook)
2016April Python学习笔记(pandasecharts)相关推荐
- [python教程入门学习]python学习笔记(CMD执行文件并传入参数)
本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...
- python学习笔记之编写readConfig读写配置文件
python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客
- Python学习笔记(十一)
Python学习笔记(十一): 生成器,迭代器回顾 模块 作业-计算器 1. 生成器,迭代器回顾 1. 列表生成式:[x for x in range(10)] 2. 生成器 (generator o ...
- Python学习笔记一简介及安装配置
Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e54 ...
- python学习笔记目录
人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...
- Python学习笔记(二):标准流与重定向
Python学习笔记(二):标准流与重定向 - SamWei - 博客园 Python学习笔记(二):标准流与重定向 Posted on 2012-02-19 22:36 SamWei 阅读(176) ...
- python 学习笔记 12 -- 写一个脚本获取城市天气信息
近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...
- python基本语法语句-python学习笔记:基本语法
原标题:python学习笔记:基本语法 缩进:必须使用4个空格来表示每级缩进,支持Tab字符 if语句,经常与else, elif(相当于else if) 配合使用. for语句,迭代器,依次处理迭代 ...
- 廖Python学习笔记一
1. 廖Python学习笔记 大的分类 如函数 用二级标题,下面的用三级 如输入输出 1.1.1. 输入输出 1.1.1.1. 输出 用 print() 在括号里加上字符串,就可以向屏幕上输出指定的文 ...
最新文章
- 单列索引和联合索引,有什么区别?
- java io删除文件_java IO 文件操作方法总结
- 计算机应用基础模块2客观题答案 文档,计算机应用基础网上形考答案模块2 Word 2010 文字处理系统客观题答案(精).doc...
- 虚幻四如何实现第一人称_虚幻周报20200930 | 双节快乐么么哒!
- Powershell管理系列(四)Lync server 2013 批量启用语音及分配分机号
- 【BZOJ5495】[十二省联考2019]异或粽子(主席树,贪心)
- 用VS运行程序错误,提示0x000007b
- AI 人工智能学习之微积分
- 微软.NET平台OA办公解决方案
- 万能的5款工具推进活动策划方案
- 雀巢咖啡旗下感CAFÉ推出高端鎏光咖啡;武田剥离中国大陆非核心业务至海森 | 美通企业日报...
- 聚搜-聚合搜索引擎网页模板
- SVD降维(相当好理解的文章)
- 盘点华为系工控企业——中国A股上市公司最多的创业体系
- Verilog-always语句
- APP瘦身大法--AndResGuard的使用
- 小白从零开始:小程序阿里云平台控制stm32(小程序篇)
- JavaScript ------ DOM(事件基础)
- python基础语法(mooc+小甲鱼)
- [附源码]计算机毕业设计贵港高铁站志愿者服务平台Springboot程序
热门文章
- php格式转换成docx,如何在PHP中修改.doc或.docx文件
- 有没有在线抠图网页版?这两个方法轻松制作
- 广州小学生米饭行为实验:米饭被大骂一个月会变臭
- 计量经济学计算机数据分析,如何用计量经济学作实证分析..doc
- ERP简单介绍(转)
- 【论文复现】中值滤波改进:Noise Adaptive Fuzzy Switching Median Filter(NAFSMF)
- 启航-后端-Java-总结2
- AliTigerTally wtoken算法分析
- appium java环境_Appium java 环境配置
- 小数乘以100后精度丢失