pandas之Series

【Pandas】pandas Series mask `pandas.Series.mask` 是 Pandas 库中用于条件过滤和替换的函数。它与 `pandas.Series.where` 类似,但逻辑相反:`mask` 会根据给定的条件 `cond` 来替换满足条件的数据,对于不满足条件的数据则保持不变。该方法的具体参数如下: 阅读详情

pandas之Series

一维数据,带标签的数组

1. 创建Series

1.1 通过list 创建Series

需要指定 data,index,data和index是list类型或者 np.arange

s1 = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
s2 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s3 = pd.Series([1, 2, 3], index=np.arange(3))
s4 = pd.Series([1, 2, 3], index=list("efg"))

image-20190408140811871

1.2 通过字典 创建Series

直接传入字典即可,key为index,value为data

dict = {"name": "Jack", "age": 30, "tel": 10086}
s5 = pd.Series(dict)

image-20190408141048327

1.3 通过旧的Series创建新的Series

可以修改Series的index,如果加入了新索引,对应的value为Nan,
注意NaN是float,pandas会自动更改为float

s6 = pd.Series(s1, index=list(string.ascii_uppercase[:15]))
s7 = s6.astype(object) #修改元素数据类型

image-20190408141534044

image-20190408141729234

2. Series的索引

2.1 通过所在的位置取值
s1[3]

3

2.2 通过索引名称取值
s1['C']

2

3. Series的切片

3.1 取前两行
s1[0:2]) # 通过位置-取前两行
3.2 取不连续多行,注意嵌套[]
s1[[1, 8]])  # 通过位置-取不连续多行
s1[['A', 'C', 'F']])  # 通过索引名称-取不连续多行
3.3 取出所有行,步长为2
s1[0::2] # 取出所有行,步长为2
3.4 按照条件,取出对应行
s1[s1 > 5]  # 按照单个条件取
s1[(s1 > 5) & (s1 % 2 == 0)] # 按照多个条件取

4. Series取出来所有索引index

4.1 所有索引index

index是一个类型

type(s1.index)
s1.index

image-20190408143334080

4.2 遍历所有的index
for i in s1.index:
    print(i)

image-20190408143443907

4.3 index类型转为list
list(s1.index)

[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’]

4.4 index可以直接切片
s1.index[0::2]

Index([‘A’, ‘C’, ‘E’, ‘G’, ‘I’], dtype=‘object’)

4.5 得到所有index的长度
en(s1.index)

10

5. Series取出来所有值values

s1.values
type(s1.values)

[ 1 3 5 7 9 2 4 6 8 10]
<class ‘numpy.ndarray’>

6. where 条件

6.1 所有大于3的元素,都变成10
s1.where(s1 > 3, 10)

A 10
B 10
C 5
D 7
E 9
F 10
G 4
H 6
I 8
J 10

6.2 所有大于5的元素,保持不变,其他的都为Nan
s1.where(s1 > 5)

A NaN
B NaN
C NaN
D 7.0
E 9.0
F NaN
G NaN
H 6.0
I 8.0
J 10.0

6.3 所有大于5的元素都变为Nan,其余的保持不变
s1.mask(s1 > 5)

A 0.0
B 1.0
C 2.0
D 3.0
E 4.0
F 5.0
G NaN
H NaN
I NaN
J NaN

附代码

import pandas as pd
import numpy as np
import string

# pandas之Series
# 一维数据,带标签的数组

# 1. 创建Series

# 1.1 通过list 创建Series (需要指定 data,index)
#     指定indexdata和index是list类型或者 np.arange
s1 = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
s2 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s3 = pd.Series([1, 2, 3], index=np.arange(3))
s4 = pd.Series([1, 2, 3], index=list("efg"))
print(s1)
print(s2)
print(s3)
print(s4)

# 1.2 通过字典 创建Series(直接传入字典即可,key为index,value为data)
dict = {"name": "Jack", "age": 30, "tel": 10086}
s5 = pd.Series(dict)
print(s5)

# 1.3 通过旧的Series创建新的Series
# (可以修改Series的index,如果加入了新索引,对应的value为Nan,
#   注意NaN是float,pandas会自动更改为float)

s6 = pd.Series(s1, index=list(string.ascii_uppercase[:15]))
print(s6)

# 1.3.1 修改元素数据类型
# s7 = s6.astype(int) 因为存在nan,所以不能指定为int
s7 = s6.astype(object)
print(s7)
print("*" * 100)

# 2. Series的索引

# 2.1 通过所在的位置取值
print(s1[3])

# 2.2 通过索引名称取值
print(s1['C'])

# 3. Series的切片

s1 = pd.Series([1, 3, 5, 7, 9, 2, 4, 6, 8, 10], index=list(string.ascii_uppercase[:10]))
print(s1)
# 3.1 输入 start end  步长

print(s1[0:2])  # 通过位置-取前两行
print(s1[[1, 8]])  # 通过位置-取不连续多行
print(s1[['A', 'C', 'F']])  # 通过索引名称-取不连续多行

print(s1[0::2])  # 取出所有行,步长为2

print(s1[s1 > 5])  # 按照单个条件取
print(s1[(s1 > 5) & (s1 % 2 == 0)])  # 按照多个条件取

# 4. Series取出来所有索引index 是一个类型

# 4.1 所有索引index
print(type(s1.index))

print(s1.index)

# 4.2 遍历所有的index
for i in s1.index:
    print(i)

# 4.3 index类型转为list
print(list(s1.index))

# 4.4 index可以直接切片
print(s1.index[0::2])

# 4.5 得到所有index的长度
print(len(s1.index))

# 5. Series取出来所有值values 是一个类型

print(s1.values)
print(type(s1.values))

# 6. where 条件

# 6.1 所有大于3的元素,都变成10
print(s1.where(s1 > 3, 10))

# 6.2 所有大于5的元素,保持不变,其他的都为Nan
print(s1.where(s1 > 5))

# 6.3 所有大于5的元素都变为Nan,其余的保持不变
s1 = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
print(s1.mask(s1 > 5))
【Pandas】pandas Series cumprod `pandas.Series.cumprod` 方法用于计算 Series 中元素的累积乘积。它会遍历 Series 的每个元素,并在每个位置返回到目前为止的所有元素的乘积。缺失值(如 NaN)会被跳过,但在第一个非缺失值之前的位置,结果将保持为 NaN。 阅读详情

相关推荐

【Pandas】pandas Series unique

`pandas.Series.unique()` 方法用于返回 Series 中的唯一值。该方法会去除重复项,并返回一个包含唯一值的 NumPy 数组,按首次出现的顺序排列。以下是该方法的详细描述:

weixin_39648905的博客 1680

怎样获取python中的Series值?

在python中除了本文就有的列表,pandas库中的Series也可以看作列表, 表示一系列的值(数字或者其他数据),例如一列数字,想要对这些数字进行操作,首先要获取值。本文介绍python中获取Series值的三种方法:1、使用切片获取Series值;2、使用索引获取Series值;3、直接遍历Series获取值。 方法一:使用切片获取Series值 x = pd.Series(np.arange(1,11),index=list("abcdefghij")) display(x) disp

shannya_zhima的博客 1万+

【Pandas】pandas Series reindex

`pandas.Series.reindex` 是一个用于重新索引 `Series` 对象的方法,允许用户根据新的索引对数据进行重排或填充。以下是该方法的参数说明

weixin_39648905的博客 1939

科学计算库 —— Pandas之Series

Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。

hu_wei123的博客 1415

【Pandas】pandas Series set_axis

`pandas.Series.sample` 是一个用于从 `Series` 中随机抽取样本的方法。它允许用户根据指定的数量或比例进行抽样,并提供了多种抽样选项。以下是该方法的参数说明:

weixin_39648905的博客 1393

【Pandas】pandas Series nunique

`pandas.Series.nunique()` 方法用于计算 Series 中唯一值的数量。该方法可以忽略或包含 NaN 值,具体取决于参数设置。以下是该方法的详细描述:

weixin_39648905的博客 802

pandas复习

import numpy as np import pandas as pd from pandas import Series ,DataFrame s1=pd.Series([1,2,3,4],index=['a','b','c','d']) s1 a 1 b 2 c 3 d 4 dtype: int64 s1.values array([1, 2, 3, 4], dtype=int64) s1.index Index(['a', 'b', 'c', 'd'], dt

灰太狼的通天之路的博客 298

【Pandas】pandas Series filter

`pandas.Series.filter([items, like, regex, axis])` 是用于筛选 `Series` 中元素的方法,它可以根据标签(索引)进行过滤。以下是各个参数的详细说明:

weixin_39648905的博客 1363

数值分析基础-pandas(1)

其次对三行三列的数据值进行格式化打印,并对分数大于60分的所有行进行打印,再对c行的性别列改为“M”并打印性别为M的行,最后求出三条数据分数列的平均分。6、使用以下字典数据创建一个DataFrame对象,其索引值为'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'。请完成以下要去的操作。1、 创建一个值为1,3,5,7,9的整型数据类型的Series对象,其索引下标为0,1,2,3,4,请输出该Series对象的数据类型、维度形状大小、以及值的总和。

m0_57994459的博客 502

【Pandas】pandas Series add_suffix

`pandas.Series.add_suffix(suffix, axis=0)` 是 Pandas 库中的一个方法,用于为 Series 的索引标签添加后缀。它通常用于在数据处理中为索引标签添加统一的标识符,以便更好地区分或描述数据。

weixin_39648905的博客 2354

【Pandas】pandas Series mode

`pandas.Series.mode` 是 pandas 库中用于计算 Series 对象中最常出现的值(众数)的函数。下面将详细描述该函数及其参数,并给出示例及结果。

weixin_39648905的博客 1090

【Pandas】pandas Series duplicated

`pandas.Series.duplicated()` 是 Pandas 库中的一个方法,用于检测 Series 中的重复值。它返回一个布尔 Series,表示每个元素是否是重复值(即是否在之前出现过)。可以通过 `keep` 参数控制如何标记重复值。

weixin_39648905的博客 837

【Pandas】pandas Series truncate

`pandas.Series.truncate([before, after, axis, copy])` 方法用于截断 Series 或 DataFrame 的数据,保留指定索引范围内的数据。对于 Series,该方法会根据索引值进行截断,返回一个新的 Series,包含在指定索引范围内的数据。

weixin_39648905的博客 1088

【Pandas】pandas Series rename

`pandas.Series.rename` 是一个用于重命名 `Series` 对象的索引或轴标签的方法。它允许用户根据指定的映射或函数对索引进行重命名。以下是该方法的参数说明:

weixin_39648905的博客 1471

【Pandas】pandas Series quantile

`pandas.Series.quantile` 是 pandas 库中用于计算 Series 对象的分位数(quantiles)的方法。分位数是将数据集分为相等部分的值,例如四分位数、十分位数或百分位数。下面将详细描述该方法及其参数,并给出示例及结果。

weixin_39648905的博客 1190

【Pandas】pandas Series apply

`pandas.Series.apply` 是 Pandas 库中 `Series` 对象的一个方法,用于将一个函数应用到 `Series` 的每个元素或整个 `Series`。它提供了极大的灵活性,可以应用于各种数据处理和转换任务。

weixin_39648905的博客 1288

【Pandas】pandas Series drop

`pandas.Series.drop()` 是 Pandas 库中的一个方法,用于从 Series 中删除指定的行或列(对于 Series 来说,通常是删除行)。它可以删除一个或多个标签(labels)对应的数据,并返回一个新的 Series,或者直接在原 Series 上进行修改(如果 `inplace=True`)。

weixin_39648905的博客 1141

从PLC到机械臂:揭秘工业自动化中的信号交互与控制逻辑

本文深入解析了PLC与机械臂在工业自动化中的信号交互与控制逻辑,详细介绍了硬件连接方案、通信机制及控制逻辑设计。通过西门子PLC与六轴机械臂的实战案例,展示了从信号采集到动作执行的完整流程,并探讨了高级控制策略与行业应用前景,为工程师提供了一套完整的实践框架。

weixin_29304985的博客 388
上一篇: sql读取数据库,查询的数据转为dataframe
下一篇: Gradle笔记
Android_Study_OK
博客等级 码龄11年 91粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值