Python Pandas中创建Series的三种方法总结

 更新时间:2023年06月13日 09:50:43   作者:AHU-丁少侠  
这篇文章主要介绍了Python Pandas中创建Series的三种方法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Pandas中创建Series的三种方法

一、通过列表创建

# encoding=utf-8
import pandas as pd
# 定义一个列表
a = [1, 2, 3, 4]
s1 = pd.Series(a)
print(s1)

运行结果:

第一列为索引,是Series在创建时默认生成的,第二列即为值,通过type(s1)命令即可看到s1的数据类型为:pandas.core.series.Series,我们也可以将第四行的代码改为:

`s1 = pd.Series(a, index=["a", "b", "c", "d"])`

重新设置我们的索引,这样原先的索引就从0,1,2,3变为了a,b,c,d,更有一定的语义

如果我们想查看索引和值可以分别通过访问Seriesindex属性和values属性:

二、通过数组创建

这里的数组值的是numpy中的数组,它是对python列表的深度封装。

我们来看代码:

# encoding=utf-8
import pandas as pd
import numpy as np
# 定义数组
arr = np.arange(1, 5)
s2 = pd.Series(arr)
print(s2)

运行结果:

可以看到,也成功创建了一个Series

三、通过字典创建

关于Series,笔者认为它更像一个有序的大字典,因此我们用操作字典的习惯操作Series往往能得心应手。

我们来看如何通过字典创建一个Series

# encoding=utf-8
import pandas as pd
# 创建一个字典
dic = {"name": "丁少侠", "age": 20, "grade": [100, 99, 88]}
s3 = pd.Series(dic)
print(s3)

运行结果:

这里我们已经成功创建了一个存放学生信息的Series,由于字典自带key,因此索引也就自然创建了。

如果我们希望grade放在第一列,应该怎么设置呢?我们只需要修改第5行代码:

s3 = pd.Series(dic, index=["grade", "name", "age"])

此时,index参数的功能不再是设置索引,而是根据索引排序,因为字典本身自带索引。

另外,假如我们将第5行代码修改为以下呢:

s3 = pd.Series(dic, index=["grade", "name", "age", "sex"])

可以看到,因为这位同学的性别未知,创建的Series中,sex这一栏就只能填NaN了,通过赋值,即可确定性别。

s3["sex"]="男"

看,像不像字典的操作!!!!那么我们顺着操作字典的思路再试着操作s3,再添加一个属性:hobby

s3["hobby"] = ["code,basketball,sleep"]

关于Series的操作无非增删改查,这里我们点到为止。

Python pandas,pandas.series,series的主要方法

Pandas安装

pip install pandas

numpy和pandas区别

  • numpy :生成的是ndarray,数组
  • pandas:基于numpy,生成两种对象,一种是series,一种是dataframe。
  • series:一维数组类似array,series=索引+数据。区别是Series能保存不同种数据类型,字符串、boolean值、数字等,而numpy只能存储同类型数据。
  • dataframe:二维的表格型数据结构,是组合的series。dataframe 的每一行和每一列都是一个series。

Series的生成

生成Series:

语法结构:

Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
  • data:可传入数组,可迭代对象,字典或标量值
  • index:以数组或列表形式传入自定义索引,若不传值,则默认[0,1,2…n],索引的个数需与data的长度相等
  • name: 自定义series的名字,默认none
#Series实例
import pandas as pd
from pandas import Series
seri=pd.Series([3,5,-2,9],index=['a','b','c','d'])
print(seri)
print(type(seri))
#输出
a    3
b    5
c   -2
d    9
dtype: int64
<class 'pandas.core.series.Series'>

Series的主要方法

1.** 获取series的值:

series.values,:以ndarray结构输出

import pandas as pd
from pandas import Series
seri=pd.Series([3,5,-2,9],index=['a','b','c','d'])
print(seri.values)
print(type(seri.values))
#输出
[ 3  5 -2  9]
<class 'numpy.ndarray'> #生成series时传入的值是list结构,输出的仍是 ndarray结构

获取series的索引:

series.index,:以pandas index 结构输出
import pandas as pd
from pandas import Series
seri=pd.Series([3,5,-2,9],index=['a','b','c','d'])
print(seri.index)
print(type(seri.index))
#输出:
Index(['a', 'b', 'c', 'd'], dtype='object')
<class 'pandas.core.indexes.base.Index'>

通过索引找到对应值:两种方法:通过位置查找/通过索引名称查找

import pandas as pd
from pandas import Series
seri=pd.Series([3,5,-2,9])
seri.index=["a","b","c","d"]
print(seri["a"]) #通过索引名称查找,类似字典
print(seri[0:3])#通过位置切片查找,类似列表/数组
#输出
3
a    3
b    5
c   -2

将字典转换成series:key对应变成index,value为值

import pandas as pd
from pandas import Series
dic={"a":"5","n":"6","k":"0"}
seri=pd.Series(dic)
print(seri)
#输出
a    5
n    6
k    0

查找缺失数据:返回缺失数据的索引和非缺失数据的索引+值

import pandas as pd
from pandas import Series
dic={"a":'',"n":"","k":"0"}
seri=pd.Series(dic)
print(seri.isnull)
#输出:
<bound method Series.isnull of a     n     
k    0

判断series中是否存在缺失数据:seri.isnull().any(),输出布尔值

注:numpy.nan 是生成确实数据的方法,nan: not a num

import numpy as np
import pandas as pd
from pandas import Series
dic={"a":np.nan,"n":np.nan,"k":"f"}
seri=pd.Series(dic)
print(seri.isnull().all())
#输出:
False
#ps: 判断series中是否都为缺失数据:series.isnull().any(),输出布尔值

去重:series.unique()

import pandas as pd
from pandas import DataFrame
from pandas import Series
data=["a","k","m","a","w","m","9"]
obj=Series(data)
uniques=obj.unique()
print(uniques)
#输出:
['a' 'k' 'm' 'w' '9']
#注:也可以用python 的set函数,
print(set(data))
#输出
{'m', 'w', '9', 'a', 'k'}
#区别:
set去重后会改变原来的顺序,而unique不会
set生成的事set对象 <class 'set'>,而unique生成的事ndarray对象 <class 'numpy.ndarray'>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python排序算法之插入排序及其优化方案详解

    Python排序算法之插入排序及其优化方案详解

    今天给大家带来的文章是关于Python的相关知识,文章围绕着Python插入排序及其优化方案展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Mac系统中Anaconda环境配置Python json库的方法详解

    Mac系统中Anaconda环境配置Python json库的方法详解

    这篇文章主要为大家介绍了如何在Mac电脑的Anaconda环境中,配置Python语言中,用以编码、解码、处理JSON数据的json库,需要的小伙伴可以参考下
    2023-08-08
  • Python实现自动批量修改文件名称

    Python实现自动批量修改文件名称

    这篇文章主要为大家详细介绍了如何基于Python语言,实现按照一定命名规则批量修改多个文件的文件名的效果,文中的示例代讲解详细,感兴趣的可以了解一下
    2023-01-01
  • 忘记ftp密码的解决方法示例

    忘记ftp密码的解决方法示例

    忘记ftp密码了怎么办?下面介绍一个使用python ftplib库的方法,大家参考使用吧
    2014-01-01
  • python解析json实例方法

    python解析json实例方法

    这篇文章主要介绍了python解析json数据的小实例,代码简单实用,大家参考使用吧
    2013-11-11
  • Python从零打造桌面文件管理工具的完整指南

    Python从零打造桌面文件管理工具的完整指南

    在日常工作中,我们每天要接触大量不同类型的文件,下面小编就来和大家详细介绍一下如何使用Python从零打造一个桌面文件管理工具,感兴趣的小伙伴可以了解下
    2026-03-03
  • numpy存取数据(tofile/fromfile)的实现

    numpy存取数据(tofile/fromfile)的实现

    本文主要介绍了numpy存取数据(tofile/fromfile)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python使用scipy模块实现一维卷积运算示例

    Python使用scipy模块实现一维卷积运算示例

    这篇文章主要介绍了Python使用scipy模块实现一维卷积运算,结合实例形式分析了scipy模块的功能及使用scipy模块进行一维卷积运算的相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • Python正则表达式常用特殊字符及其含义示例详解

    Python正则表达式常用特殊字符及其含义示例详解

    Python正则表达式是一种强大的文本匹配工具,常用于处理字符串、解析HTML、爬虫等领域,这篇文章主要介绍了Python正则表达式常用特殊字符及其含义的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-02-02
  • 在Pandas中进行数据重命名的方法示例

    在Pandas中进行数据重命名的方法示例

    Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,带你快速掌握如何在Pandas中进行数据重命名,需要的朋友可以参考下
    2025-01-01

最新评论