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学习笔记之Break和Continue用法分析

    Python学习笔记之Break和Continue用法分析

    这篇文章主要介绍了Python学习笔记之Break和Continue用法,结合实例形式分析了Python中Break和Continue的功能、使用方法、区别及相关操作注意事项,需要的朋友可以参考下
    2019-08-08
  • Python数学建模学习模拟退火算法整数规划问题示例解析

    Python数学建模学习模拟退火算法整数规划问题示例解析

    整数规划问题在工业、经济、国防、医疗等各行各业应用十分广泛,是指规划中的变量(全部或部分)限制为整数,属于离散优化问题Discrete Optimization
    2021-10-10
  • Pygame框架实现飞机大战

    Pygame框架实现飞机大战

    这篇文章主要为大家详细介绍了Pygame框架实现飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • Python dict和defaultdict使用实例解析

    Python dict和defaultdict使用实例解析

    这篇文章主要介绍了Python dict和defaultdict使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • python3 配置logging日志类的操作

    python3 配置logging日志类的操作

    这篇文章主要介绍了python3 配置logging日志类的操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python之re模块详解

    Python之re模块详解

    这篇文章主要介绍了Python编程之Re模块下的函数介绍,还是比较不错的,这里分享给大家,供需要的朋友参考,希望能够给你带来帮助
    2021-09-09
  • python深度学习之多标签分类器及pytorch实现源码

    python深度学习之多标签分类器及pytorch实现源码

    这篇文章主要为大家介绍了python深度学习之多标签分类器的使用说明及pytorch的实现源码,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-01-01
  • Python实现的栈、队列、文件目录遍历操作示例

    Python实现的栈、队列、文件目录遍历操作示例

    这篇文章主要介绍了Python实现的栈、队列、文件目录遍历操作,结合实例形式分析了Python数据结构中栈与队列的定义、使用,以及文件目录的遍历相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • Python实现判断一个字符串是否包含子串的方法总结

    Python实现判断一个字符串是否包含子串的方法总结

    这篇文章主要介绍了Python实现判断一个字符串是否包含子串的方法,结合实例形式总结分析了四种比较常用的字符串子串判定方法,需要的朋友可以参考下
    2017-11-11
  • 怎样用cmd命令行运行Python文件

    怎样用cmd命令行运行Python文件

    这篇文章主要介绍了怎样用cmd命令行运行Python文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论