Python-Pandas库-数据结构Series用法总结

一、Pandas数据结构之Series: 类似于表格中的一个列(column),类似于一维数组,语法:

pd.Series(data,index,dtype,name,copy)

Python-Pandas库-数据结构Series用法总结

二、创建Series对象

点击查看代码
s = pd.Series(data=np.random.randn(5),index=['a','b','c','d','e'],dtype='float64',name='这是一个Series')
print(s)
print(type(s))          #<class 'pandas.core.series.Series'>

#1、通过list创建
s1 = pd.Series([10, 20, 30, 40])
print(s1)
print(type(s1))       #<class 'pandas.core.series.Series'>

#2、通过字典创建
s2 = pd.Series({'a': 10,'b': 8,'c': 8,'d': 11,'e': 2,'f': 5})
print(s2)
print(type(s2))    #<class 'pandas.core.series.Series'>

#3、通过数组创建
s3 = pd.Series(np.arange(10,15),index=['a','b','c','d','e'])
print(s3)
print(type(s3))     #<class 'pandas.core.series.Series'>

三、查看数据

  • 索引及name属性

点击查看代码
'''
测试数据s2:
a    10
b     8
c     8
d    11
e     2
f     5
dtype: int64
'''
#获取索引
print(s2.index)
#执行结果:Index(['a', 'b', 'c', 'd', 'e', 'f'], dtype='object')

#获取数据
print(s2.values)     
#执行结果:[10  8  9 11  2  5]
  •  选取数据

点击查看代码
'''
测试数据s2: 
a    10
b     8
c     8
d    11
e     2
f     5
dtype: int64
'''

#1、通过位置获取数据
print(s2[0:1])
print(s2[:2])

#2、通过索引获取数据
print(s2[['c','d']])

#3、通过boolean indexing获取数据
print(s2[s2.values>=8])
print(s2[s2.index != 'a'])

四、 运算

  • 统计运算

点击查看代码
'''
测试数据s2: 
a    10
b     8
c     8
d    11
e     2
f     5
dtype: int64
'''

#统计运算
print(s2.describe())
'''
执行结果:
count     6.000000        数量
mean      7.500000        平均值
std       3.391165        标准差
min       2.000000        最小值
25%       5.750000
50%       8.500000
75%       9.750000
max      11.000000        最大值
dtype: float64
'''
print(s2.mean())    #平均值
print(s2.median())   #中位数
print(s2.sum())       #求和
print(s2.std())       #标准差
print(s2.mode())     #众数(出现最多的数,如果所有数据出现的次数都一样,则没有众数)执行结果:8
print(s2.sort_values())   #排序
print(s2.value_counts())   #每个值的数量
  • 数学运算

点击查看代码
'''
测试数据s2: 
a    10
b     8
c     8
d    11
e     2
f     5
dtype: int64
'''

print(s2/2)  #除以2
print(s2 // 2)   #对每个值除以2后取整
print(s2 % 2 )   #取余
print(s2 ** 2)   #求平方
print(np.sqrt(s2))   #求开方
print(np.log(s2))    #求对数

  • 对齐计算

点击查看代码
#对齐计算
'''
测试原数据s2:
a    10
b     8
c     8
d    11
e     2
f     5
dtype: int64
'''

#新增的数据与原数据相加
s2_1 = pd.Series({'a': 10,'b': 20,'d': 30,'e':40,'f':50},name='数值')
print(s2_1)
ss = s2 + s2_1
print(ss)
'''
执行结果:
a    20.0
b    28.0
c     NaN
d    41.0
e    42.0
f    55.0
dtype: float64
'''

五、缺失值处理

点击查看代码
'''
测试原数据ss: 
a    20.0
b    28.0
c     NaN
d    41.0
e    42.0
f    55.0
dtype: float64
'''

print(ss[ss.notnull()])    #非空值
print(ss[ss.isnull()])     #空值
ss = ss.fillna(value=0)    #用默认值填充缺失
print(ss)

六、删除/修改值

点击查看代码
#删除值
'''
测试原数据s2:
a    10
b     8
c     8
d    11
e     2
f     5
dtype: int64
'''

s2 = s2.drop('c')
print(s2)

#修改值
s2['a'] = 11
print(s2)