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整理后,字典的键将作为数据的列索引值

相关文章
|
15天前
|
SQL 数据采集 数据可视化
Pandas 数据结构 - DataFrame
10月更文挑战第26天
33 2
Pandas 数据结构 - DataFrame
|
15天前
|
索引 Python
Pandas 数据结构 - Series
10月更文挑战第26天
31 2
Pandas 数据结构 - Series
|
11天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
26 2
|
8天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
8天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
索引 Python
「python」DataFrame中loc、iloc、ix的区别
iloc,loc,ix的使用 在使用DataFrame数据类型的过程中,常要使用到iloc、loc、ix,总结一下三者的不同 import pandas as pd data = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}) data.
10533 2
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
5天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
5天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
7天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####