网络爬虫&Pandas

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

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

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

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

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


学习本教程前你需要了解

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

 


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,逗号分隔值,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值