先记录自己目前使用过的用法,后续遇到再补充
1 | df = pd.read_csv( |
积极勤奋,主动勇敢
先记录自己目前使用过的用法,后续遇到再补充
1 | df = pd.read_csv( |
设有如下df
1 | target |
我们希望可以将其根据target
的值的不同,分为若干个子df,方法如下。
1 | df_1 = df[df["target"].isin(["1"])] |
简单来说,tf.control_dependencies([,])
是用来保证with下的op执行之前,先执行传入的op
tf.identify()
则是返回一个与传入tensor一模一样新的tensor的op,这会增加一个新节点到gragh中。
1 | from gensim.models.wrappers import FastText |
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。
DataFrame读取行可以通过以下两种索引
df.loc["one"]
df.iloc[0]
行标签索引可以在创建DataFrame的时候指定,如1
2
3
4
5import pandas as pd
d=[[1,2,3,4],[5,6,7,8]]
index=["one","two"]
df=pd.DataFrame(d, index=index)
print df.loc["one"]
行号索引(index)可以通过df.index
来查看1
2
3>>> df.index
RangeIndex(start=0, stop=18, step=1) # 0~17
>>> df.iloc[0] # 获取第一行
也可以全部都用df.ix[]
1
2df.ix[3] # 读取第三行
df.ix["three"]
1 | # 两个参数,第一个类似切片,指定要获取的行 |
列名可以通过df.columns
获取
1 | >>> df.columns |
1 | import numpy as np |
在这里主要记录自己项目中涉及到的用法,供以后参考。
要使用BeautifulSoup,首先就要构建一个BeautifulSoup
类实例
str
, 也可以是打开的文件句柄features
: 指定html解析器 (关于解析器之间的区别,请戳官方文档, “安装解析器”一节)1 | from bs4 import BeautifulSoup as Soup |
常用方法如下1
2
3soup.table # 等同于 soup.find('table')
soup.find('table') # 第一个出现的table, 类型为<class 'bs4.element.Tag'>
soup.find_all('table') # 所有table
比如说我的html文本是<b>this is sample</b>
, 我想要获得的是'this is sample'
可以通过soup.text
或者soup.string
属性来获得
关于text
和string
的区别可参考Python BeautifulSoup 中.text与.string的区别
1 | >>> s = Soup('<b>this is sample</b>') |
那如果我现在想获得的就是<b>this is sample</b>
呢?
如果是在iPython环境下,可以直接print()
相应的Tag对象
1 | >>> s = Soup('<b>this is sample</b>') |
如果是在脚本里面,则需要用到Python对象的内置方法__repr__()
在print一个对象的时候实际上调用了其
__repr__()
方法
1 | >>> s = Soup('<b>this is sample</b>') |
pandas可以用read_html()
函数直接解析html,尤其是可以吧html中的table直接转换为Dataframe,很是方便。
比如说有table html代码如下
1 | <table class="table1"> <tbody> <tr> <th colspan="1" rowspan="2">Station</th> <th colspan="2">To Tiu Keng Leng</th> <th colspan="2">To Kwun Tong</th> <th colspan="2">To Whampoa</th> </tr> <tr> <th>First Train</th> <th>Last Train</th> <th>First Train</th> <th>Last Train</th> <th>First Train</th> <th>Last Train</th> </tr> <tr> <td>Whampoa</td> <td>06:10</td> <td>00:40</td> <td>06:10</td> <td>01:00</td> <td>N/A</td> <td>N/A</td> </tr></tbody></table> |
通过read_html()
解析得到
1 | import pandas as pd |
为什么选择requests,因为它能完全胜任python自带的urllib模块,简化了不必要的功能的同时让使用更加简单。
安装1
pip3 install requests
首先呈上官方文档,有中文版,欢迎来啃。
下面主要介绍两种方法:get和post
1 | r = requests.get(url,**args)#返回一个Response对象,我们可以从这个对象中获取所有我们想要的信息 |
1 | args = { |
get和post方法中有许多参数可以使用,部分参数后面会详解。
1 | payload = {'key1': 'value1', 'key2': 'value2'} |
从这个对象中获取所有我们想要的信息非常简单,毕竟爬虫要的数据主要就三种,html源码,图片二进制数据,json数据,Response对象一次性满足你三个愿望。
1 | r.encoding = 'ISO-8859-1' #指定r.text返回的数据类型,写在r.text之前。 |