【Python3 爬虫学习笔记】Pandas:强大的数据处理套件 2
数据的修改及排序 数据的修改
修改数据的操作非常简单,只需要把上例中读取的数据项设定为指定值即可。例如,把陈聪明的数学成绩修改为91:
df.ix["陈聪明"]["数学"] = 91
或把陈聪明的所有成绩都改为80:
df.ix["陈聪明", :] = 80
数据的排序
提供了两种数据排序功能。
第1种排序功能是根据指定列标题下面的值进行排序,语法为:
数据变量 = df.sort_values(by=列表[, ascending=布尔值])
df1 = df.sort_values(by="数学", ascending=False)
第2中排序功能是根据行标题或列标题进行排序,语法为:
数据变量 = df.sort_index(axis=行列值[, ascending=布尔值])
df2 = df.sort_index(axis=0)
删除数据
可通过drop()方法删除数据,语法为:
数据变量 = df.drop(行标题或列标题[, axis=行列值])
df1 = df.drop("陈聪明") # axis参数可省略
执行结果:
删除数学(列标题)成绩:
df2 = df.drop("数学", axis = 1)
若删除的行或列超过1个,需使用列表作为参数,例如删除数学及自然成绩:
df3 = df.drop(["数学", "自然"], axis=1)
如果删除的列或行项目很多且连续,可使用删除“范围”的方式来处理。删除连续行的语法为:
数据变量 = df.drop(df.index[开始数值:结束数值][,axis=行列值]
执行结果会删除“开始数值”到“结束数值-1”行,例如删除第2行到第4行(陈聪明、黄美丽、熊小娟)的成绩:
df4 = df.drop(df.index[1:4])
删除连续列的语法为:
数据变量 = df.drop(df.columns[开始数值:结束数值][,axis=行列值]
例如,删除第2列到第4列(数学、英文、自然)成绩:
df5 = df.drop(df.columns[1:4], axis=1)
导入数据
有时候,手工生成的数据是件非常麻烦的事情,所以我们通常会先把数据保存在Excel表格或数据库中,然后再把数据导入。我们还可以直接从网页中抓取表格数据并导入到中,作为数据。
常用的导入数据方法有:
方法说明
导入表格型数据(*.csv)
导入 Excel型数据(*.xlsx)
导入数据库型数据(*.)
导入Json型数据(*.json)
导入网页中的表数据(*.html)
的()方法会用到包,安装该包:
conda install html5lib
以中国历年GDP数据表为例:
import pandas as pd
tables = pd.read_html("http://value500.com/M2GDP.html")
其中,()方法返回列表,列表中的每一个元素是网页中的一个表格。有时候一个网页有多个表格,需要我们以手动方式在网页的源代码中通过"
import pandas as pd
tables = pd.read_html("http://value500.com/M2GDP.html")
n = 1
for table in tables:print("第 " + str(n) + " 个表格:")print(table.head())print()n += 1
import pandas as pd
tables = pd.read_html("http://value500.com/M2GDP.html")
table = tables[18]
table = table.drop(table.index[[0,1]])
table.columns = ["年份", "M2指标", "GDP绝对额", "M2/GDP"]
table.index = range(len(table.index))
print(table)