python:Pandas的数据结构:Series,DataFrame

简介: 1.Pandas提供的数据结构和函数的设计,将使表格数据的工作快速、简单、更易懂。所以利用Pandas进行数据操作、预处理、清洗是Python数据分析中的重要技能。

1.Pandas提供的数据结构和函数的设计,将使表格数据的工作快速、简单、更易懂。所以利用Pandas进行数据操作、预处理、清洗是Python数据分析中的重要技能。

常见的数据存储形式有Excel和数据库这两种,不管是Excel还是数据库他们存储数据的方式都是以表格样式进行存储,有行、有列,并且每一行和每一列都有自己的索引

例如:name,age等这些就是列索引,可以方便我们获取数据。很不巧的是我们Pandas的DataFrame的结构就和他们相同,Series的结构和表中的行的结构也相同

。上代码演示:

# 导入pandas模块
import pandas as pd
#通过Series存储每个英雄的基本信息
#创建Series
s1 = pd.Series([1,'盖伦','18','150.0','男'])
s2 = pd.Series([2,'乐芙兰','19','160.0','女'])
s3 = pd.Series([3,'亚索','20','170.0','男'])
s4 = pd.Series([4,'鳄鱼','21','180.0','男'])
s5 = pd.Series([5,'克烈','22','190.0','男'])
series_list=[s1,s2,s3,s4,s5]
#创建一个DataFrame对象存储通讯录
df=pd.DataFrame(series_list)
# 打印出构造的DataFrame
print(df)

看着很复杂,但是别慌,慢慢来~~

根据打印的结果我们来进一步分析

整个数据被分为三部分:行索引(index),列索引(columns)及数据内容(data).

但是当行和列索引的值没被定义的时候,会被默认为0~n,索引就是为了更好的查询资料。接下来解析一下series

Series是Pandas中最基本的对象,Series类似一种一维数组, 能为数据自定义标签,也就是行索引(index)我们来创建一个series看看效果:

# 导入Series
from pandas import Series,DataFrame
# 创建Series,使用默认索引
sel =  Series(data=['cahngzhang','uzi','xiaotian','xiye','pdd'])
print(sel)
0    cahngzhang
1           uzi
2      xiaotian
3          xiye
4           pdd
dtype: object

一个Series其实就是一条数据,Series方法的第一个参数是data,第二个参数是index(索引),但是上述代码没有,所以会传默认值0~n.

那么接下来自定义一下我们的行索引.

# 导入Series
from pandas import Series,DataFrame
# 创建Series,使用自定义索引
sel =  Series(data=['cahngzhang','uzi','xiaotian','xiye','pdd'],
              index = ['1','3','5','7','8'])
print(sel)
1    cahngzhang
3           uzi
5      xiaotian
7          xiye
8           pdd
dtype: object

index参数就是我们的行索引值,要注意的是:参数值的个数一定要和data数相同。

在创建Series时数据并不一定要是列表,也可以将一个字典传进去。

from pandas import Series,DataFrame
# 将字典转换为Series
dic={"red":100,"black":400,"green":300,"pink":900}
se2=Series(data=dic)
print(se2)
red      100
black    400
green    300
pink     900
dtype: int64

当数据是字典的时候,会将字典的键作为索引,字典的值作为索引对应的数据值。(我个人喜欢这种方式来写代码,方便理解~)

**二.**DataFrame的创建:

**DataFrame(数据表)**是一种 2 维数据结构,数据以表格的形式存储,分成若干行和列。通过 DataFrame,你能很方便地处理数据。

调用DataFrame()可以将多种格式的数据转换为DataFrame对象,它的的三个参数data、index和columns分别为数据、行索引和列索引。

我们现在就用pandas帮忙常见一套lol王者之师吧。

from pandas import Series,DataFrame
# 创建二维列表存储选手信息
lol_list = [['上单','TheShy',20],
            ['打野','小天',19],
            ['中单','Faker',23],
            ['ADC','Uzi',22],
            ['辅助','Ming',21]]
# 创建dataframe
df = DataFrame(data=lol_list)
print(df)

结果如下

     0       1   2
0   上单  TheShy  20
1   打野      小天  19
2   中单   Faker  23
3  ADC     Uzi  22
4   辅助    Ming  21

好了,您已经成功的创建出一个英雄联盟王者之师,我们再来一起阅读下这段代码。

lol_list是使用一个二维列表,将每一个队员的信息存储到一个列表中。

调用DataFrame()将二维列表转换为DataFrame对象,行列索引使用的是默认0-N数字代表。

有没有办法在创建DataFrame对象的时候为每一列设定一个有意义的名字呢?

我们可以通过给DataFrame构造函数中的参数index,columns传值,来设定DataFrame的中的行列索引的值。

from pandas import Series,DataFrame
# 创建二维列表存储选手信息
lol_list = [['上单','TheShy',20],
            ['打野','小天',19],
            ['中单','Faker',23],
            ['ADC','Uzi',22],
            ['辅助','Ming',21]]
# 创建dataframe
df = DataFrame(data=lol_list,
               index=['a','b','c','d','e'],
               columns=['位置','ID号','年龄'])
print(df)

效果如下

    位置     ID号  年龄
a   上单  TheShy  20
b   打野      小天  19
c   中单   Faker  23
d  ADC     Uzi  22
e   辅助    Ming  21

大家可以对比这两个代码,可以发现第二个可以看到每一列或者每一行都有了一个名字。

当然我们也可以使用字典来创建一个DataFrame数据。

from pandas import Series,DataFrame
import pandas as pd
# 使用字典创建
dic={
    '位置': ['上单', '打野', '中单', 'ADC','辅助'],
    'ID号': ['TheShy', '小天', 'Faker', 'Uzi', 'Ming'],
    'year': [20, 19, 23, 22,21]}
df=pd.DataFrame(dic)
print(df)

效果和上一个相同。通过结果可以看出当字典格式的数据被dataframe整理后,字典的键将作为数据的列索引值

相关文章
|
1天前
|
Python
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
12 3
|
1月前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
47 2
|
2月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
132 66
|
2月前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
70 20
|
2月前
|
存储 数据挖掘 索引
Pandas数据结构:Series与DataFrame
本文介绍了 Python 的 Pandas 库中两种主要数据结构 `Series` 和 ``DataFrame`,从基础概念入手,详细讲解了它们的创建、常见问题及解决方案,包括数据缺失处理、数据类型转换、重复数据删除、数据筛选、排序、聚合和合并等操作。同时,还提供了常见报错及解决方法,帮助读者更好地理解和使用 Pandas 进行数据分析。
161 10
|
2月前
|
存储 数据挖掘 数据处理
掌握Pandas核心数据结构:Series与DataFrame的四种创建方式
本文介绍了 Pandas 库中核心数据结构 Series 和 DataFrame 的四种创建方法,包括从列表、字典、标量和 NumPy 数组创建 Series,以及从字典、列表的列表、NumPy 数组和 Series 字典创建 DataFrame,通过示例详细说明了每种创建方式的具体应用。
212 67
|
2月前
|
存储 数据挖掘 索引
Pandas Series 和 DataFrame 常用属性详解及实例
Pandas 是 Python 数据分析的重要工具,其核心数据结构 Series 和 DataFrame 广泛应用。本文详细介绍了这两种结构的常用属性,如 `index`、`values`、`dtype` 等,并通过具体示例帮助读者更好地理解和使用这些属性,提升数据分析效率。
63 4
|
3月前
|
数据采集 存储 算法
Python 中的数据结构和算法优化策略
Python中的数据结构和算法如何进行优化?
|
3月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
151 59
|
3月前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
111 33

热门文章

最新文章

推荐镜像

更多