网络爬虫&Pandas

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。
Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。

Pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。

Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。

Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。

Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。

Pandas 广泛应用在学术、金融、统计学等各个数据分析领域。

学习本教程前你需要了解
在开学习 Pandas 教程之前,我们需要具备基本的 Python 基础,如果你对 Python还不了解,可以阅读我们的教程:

Python 2.x 版本
Python 3.x 版本
Pandas 应用
Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。

数据结构
Series 是一种类似于一维数组的对象,它由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

Pandas安装安装
pandas需要基础环境是Python,开始前我们假定你已经安装了Python和Pip。

使用pip安装pandas: 

Microsoft Windows [版本 10.0.19043.1645]
(c) Microsoft Corporation。保留所有权利。
 
C:\WINDOWS\system32>pip install pandas
Requirement already satisfied: pandas in c:\users\1234\anaconda3\lib\site-packages (1.3.4)
Requirement already satisfied: pytz>=2017.3 in c:\users\1234\anaconda3\lib\site-packages (from pandas) (2021.3)
Requirement already satisfied: numpy>=1.17.3 in c:\users\1234\anaconda3\lib\site-packages (from pandas) (1.20.3)
Requirement already satisfied: python-dateutil>=2.7.3 in c:\users\1234\anaconda3\lib\site-packages (from pandas) (2.8.2)
Requirement already satisfied: six>=1.5 in c:\users\1234\anaconda3\lib\site-packages (from python-dateutil>=2.7.3->pandas) (1.16.0)
 
C:\WINDOWS\system32>
Pandas 数据结构 - DataFrame
DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

DataFrame 构造方法如下:

pandas.DataFrame( data, index, columns, dtype, copy)
参数说明:

data:一组数据(ndarray、series, map, lists, dict 等类型)。

index:索引值,或者可以称为行标签。

columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。

dtype:数据类型。

copy:拷贝数据,默认为 False。

Pandas DataFrame 是一个二维的数组结构,类似二维数组。

实例 - 使用列表创建
import pandas as pd
 
data = [['Google',10],['Runoob',12],['Wiki',13]]
df = pd.DataFrame(data,columns=['Site','Age'],dtype=float)
print(df)
输出结果如下:

以下实例使用 ndarrays 创建,ndarray 的长度必须相同, 如果传递了 index,则索引的长度应等于数组的长度。如果没有传递索引,则默认情况下,索引将是range(n),其中n是数组长度。

ndarrays 可以参考:NumPy Ndarray 对象

实例 - 使用 ndarrays 创建
import pandas as pd
 
data = {'Site':['Google', 'Runoob', 'Wiki'], 'Age':[10, 12, 13]}
df = pd.DataFrame(data)
print (df)
输出结果如下:

从以上输出结果可以知道, DataFrame 数据类型一个表格,包含 rows(行) 和 columns(列):

还可以使用字典(key/value),其中字典的 key 为列名:

实例 - 使用字典创建
import pandas as pd
 
data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print (df)
输出结果为:

  a   b     c0  1   2   NaN1  5  10  20.0
没有对应的部分数据为 NaN。

Pandas 可以使用 loc 属性返回指定行的数据,如果没有设置索引,第一行索引为 0,第二行索引为 1,以此类推:

实例
import pandas as pd
 
data = {
  "calories": [420, 380, 390],
  "duration": [50, 40, 45]
}
 
# 数据载入到 DataFrame 对象
df = pd.DataFrame(data)
 
# 返回第一行
print(df.loc[0])
# 返回第二行
print(df.loc[1])
输出结果如下:

calories    420
duration     50Name: 0, dtype: int64
calories    380
duration     40Name: 1, dtype: int64
注意:返回结果其实就是一个 Pandas Series 数据。

也可以返回多行数据,使用 [[ ... ]] 格式,... 为各行的索引,以逗号隔开:

实例
import pandas as pd
 
data = {
  "calories": [420, 380, 390],
  "duration": [50, 40, 45]
}
 
# 数据载入到 DataFrame 对象
df = pd.DataFrame(data)
 
# 返回第一行和第二行
print(df.loc[[0, 1]])
输出结果为:

calories  duration0       420        501       380        40
注意:返回结果其实就是一个 Pandas DataFrame 数据。

我们可以指定索引值,如下实例:

实例
import pandas as pd
 
data = {
  "calories": [420, 380, 390],
  "duration": [50, 40, 45]
}
 
df = pd.DataFrame(data, index = ["day1", "day2", "day3"])
 
print(df)
输出结果为:

calories  duration
day1       420        50
day2       380        40
day3       390        45
Pandas 可以使用 loc 属性返回指定索引对应到某一行:

实例
import pandas as pd
 
data = {
  "calories": [420, 380, 390],
  "duration": [50, 40, 45]
}
 
df = pd.DataFrame(data, index = ["day1", "day2", "day3"])
 
# 指定索引
print(df.loc["day2"])
输出结果为:

calories    380
duration     40Name: day2, dtype: int64
Pandas CSV 文件
CSV(Comma-Separated Values,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

CSV 是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。

Pandas 可以很方便的处理 CSV 文件,本文以 nba.csv 为例,你可以下载 nba.csv 或打开 nba.csv 查看。

实例
import pandas as pd
 
df = pd.read_csv('nba.csv')
 
print(df.to_string())
to_string() 用于返回 DataFrame 类型的数据,如果不使用该函数,则输出结果为数据的前面 5 行和末尾 5 行,中间部分以 ... 代替。

实例
import pandas as pd
 
df = pd.read_csv('nba.csv')
 
print(df)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值