pandas中Series的代码实例解析
作者:程序~源
pandas中Series的创建
引用数据库
import pandas as pd s=pd.Series( data, index, dtype, copy,name)
参数名称 | 描述 |
data | 输入的数据,可以是列表、常量、ndarray 数组等。 |
index | 索引值必须是惟一的,如果没有传递索引,则默认为 np.arrange(n)。 |
dtype | dtype表示数据类型,如果没有提供,则会自动判断得出。 |
copy | 表示对 data 进行拷贝,默认为 False。 |
name | 接收string或list。表示Series对象的名称。默认为None |
1)用python中的列表list创建:
import pandas as pd my_list=[1,2,3,4] my_Series=pd.Series(my_list) print(my_list)
输出结果如下:
0 1
1 2
2 3
3 4
dtype: int64
2)用numpy数组创建
import pandas as pd import numpy as np my_array=np.array([1,2,3,4]) s=pd.Series(my_array) print(s)
输出结果如下:
0 1
1 2
2 3
3 4
dtype: int32
3)用python中的字典dict创建:
import pandas as pd data = {'a' : 0., 'b' : 1., 'c' : 2.} s = pd.Series(data) print(s)
输出结果如下:
a 0.0
b 1.0
c 2.0
dtype: float64
4)标量创建Series对象:
如果 data 是标量值,则必须提供索引,示例如下:
import pandas as pd s = pd.Series(5, index=[0, 1, 2, 3]) print(s)
输出如下:
0 5
1 5
2 5
3 5
dtype: int64
5)为index参数传递索引:
以上面的dict方法举例:
import pandas as pd data = {'a' : 0., 'b' : 1., 'c' : 2.} s = pd.Series(data,index=['b','c','d','a']) print(s)
输出结果如下:
b 1.0
c 2.0
d NaN
a 0.0
dtype: float64
其中需要注意的是索引没有匹配值时会返回NAN值
pandas中Series的访问
# 访问Series中数据的两种方法 import pandas as pd s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五']) print(s1[0]) #通过元素储存位置访问 print(s1['张三']) #通过指定索引访问 # 结果均为 75
1)切片操作
数据切片的概念源于Numpy数组,Series对象使用类似NumPy中ndarray的数据访问方法实现切片操作。
#Series的切片操作 import pandas as pd s1 = pd.Series([ 75, 90, 61, 59],index=['a', 'b', 'c', 'd']) s1[1:3]
2) 通过bool数组访问Series数据
import pandas as pd import numpy as np my_array=np.array([1,2,3,4]) s=pd.Series(my_array,['a','b','c','d']) print(s) print(s[s.index>'a'])
输出:
a 1
b 2
c 3
d 4
dtype: int32
b 2
c 3
d 4
dtype: int32
3)数据修改
可以直接通过赋值的方法修改Series中的对应值。
# 修改Series中的值 import pandas as pd s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五']) s1['张三'] = 60 #通过指定索引访问 s1[1] = 60 #通过元素储存位置访问 print(s1)
输出数据:
张三 60
李四 60
陈五 61
dtype: int64
4)算术运算
Pandas会根据索引index索引对相应数据进行计算。如代码所示,可以直接对Series结构进行加减乘除运算符,当出现index不匹配的情况时会输出NaN。
import pandas as pd sr1 = pd.Series([1, 2, 3, 4],['a','b','c','d']) sr2 = pd.Series([1, 5, 8, 9],['a','c','e','f']) print(sr2 - sr1)
输出:
a 0.0
b NaN
c 2.0
d NaN
e NaN
f NaN
dtype: float64
pandas中Series的常用属性
名称 | 属性 |
axes | 以列表的形式返回所有行索引标签。 |
dtype | 返回对象的数据类型。 |
empty | 返回一个空的 Series 对象。 |
ndim | 返回输入数据的维数。 |
size | 返回输入数据的元素数量。 |
values | 以 ndarray 的形式返回 Series 对象。 |
index | 返回一个RangeIndex对象,用来描述索引的取值范围。 |
- values : 以 ndarray 的形式返回 Series 对象。
import pandas as pd import numpy as np s = pd.Series(np.random.randn(6)) print(s) print("输出series中数据") print(s.values)
输出:
0 -0.502100
1 0.696194
2 -0.982063
3 0.416430
4 -1.384514
5 0.444303
dtype: float64
输出series中数据
[-0.50210028 0.69619407 -0.98206327 0.41642976 -1.38451433 0.44430257]
- axes: 以列表的形式返回所有行索引标签。
import pandas as pd import numpy as np s = pd.Series(np.random.randn(5)) print ("The axes are:") print(s.axes)
输出:
The axes are:
[RangeIndex(start=0, stop=5, step=1)]
Series常用方法
1)统计方法
2)追加Series和插入单个值
类似list,通过append方法能够在原Series上插入(追加)新的Series。若只在原Series上插入单个值,则采用赋值方式即可
import pandas as pd list1 = [0, 1, 2, 3, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) series1 = pd.Series([4, 5], index = ['f', 'g']) # 追加Series print('在series插入series1后为:\n', series.append(series1))
输出:
在series插入series1后为:
a 3
b 1
c 2
d 3
e 4
f 4
g 5
dtype: int64
3)删除Series元素
import pandas as pd list1 = [0, 1, 2, 3, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) series.drop('e', inplace = True) print( series)
输出:
a 0
b 1
c 2
d 3
dtype: int64
4)unique()与nunique()的用法
unique()返回去重后的元素值
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.unique())
输出:
[0 1 2 4]
nunique()返回去重后的元素个数
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.nunique())
输出:
4
value_counts(),求不同元素的个数
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.value_counts())
输出:
4 2
0 1
1 1
2 1
dtype: int64
value_counts(),求不同元素的个数
import pandas as pd list1 = [0, 1, 2, 4, 4] series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e']) print(series.value_counts())
输出:
4 2
0 1
1 1
2 1
dtype: int64
到此这篇关于pandas中Series的代码实例解析的文章就介绍到这了,更多相关pandas的Series实例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!