Pandas笔记1----------Pandas数据结构:Series

1.series介绍

series是一种类似于一维数组的对象,由两部分组成

  • value:数据,ndarray类型
  • index:数据索引标签

2.series的创建

  • 由pd.Series()直接创建
    • index:索引值
    • name:series的名字
import numpy as np
import pandas as pd
n = pd.Series([1,2,3],index=['A','B','C'],name='test')
print('n:\n',n)
  • 由列表或者numpy数组创建:默认索引为0到n-1的整数型索引
import numpy as np
import pandas as pd
#列表创建
x = [4,5,8,12,34]
s = pd.Series(x) 
print('s:\n',s)
#numpy创建
n = np.arange(0,10,2)
print('n:',n)
s = pd.Series(n)
print('s:\n',s)
#查看值和索引
print('s的值:',s.values)
print('s的索引:',s.index)
#修改索引
s.index = ['a','b','c','d','e']
print('s:\n',s)
s.index = list('ABCDE')
print('s:\n',s)
#通过索引获取值
value = s.E
print('value:',value)
#通过索引修改值
s['E'] = 100
print('s:\n',s)
  • 由字典创建
import numpy as np
import pandas as pd
d = {
    'a':11,
    'b':34,
    'c':56,
    'd':78
}
s = pd.Series(d)
print('s:\n',s)

3.series的索引

  • 显示索引:使用索引名
    • 使用index中的元素作为索引值
    • 使用.loc[]
import numpy as np
import pandas as pd
s = pd.Series({'python':100,'java':200,'c++':300})
print('s:\n',s)
#使用索引名
data = s['python'] #结果为一个数值
print('data:',data)
data = s[['python','java']] #结果为一个Series
print('data:\n',data)
#使用.loc[]
data = s.loc[['c++','python']]
print('data:\n',data)
  • 隐式索引:使用数字下标
    • 使用整数作为索引值
    • 使用.iloc[]
import numpy as np
import pandas as pd
s = pd.Series({'python':100,'java':200,'c++':300})
print('s:\n',s)
#使用索引下标
data = s[0] #结果为一个数值
print('data:',data)
data = s[[0,2]] #结果为一个Series
print('data:\n',data)
#使用.iloc[]
data = s.iloc[[0,2]]
print('data:\n',data)

4.series的切片

import numpy as np
import pandas as pd
s = pd.Series({
    '语文':100,
    '数学':140,
    '英语':130,
    '物理':110,
    '化学':98,
    '生物':80,
})
print('s:\n',s)
#隐式切片:左闭右开
data = s[1:4]
print('data:\n',data)
#显式切片:全闭区间
data = s['数学':'生物']
print('data:\n',data)

5.series的基本属性

import numpy as np
import pandas as pd
s = pd.Series({
    '语文':100,
    '数学':140,
    '英语':130,
    '物理':110,
    '化学':98,
    '生物':80,
},name='成绩')
print('s:\n',s)
#形状
shape = s.shape
print('shape:',shape)
#元素个数
size = s.size
print('size:',size)
#索引
index = s.index
print('index:',index)
#值
value = s.values
print('value:',value)
#名字
name = s.name
print('name:',name)

6.series的基本方法

  • 查看数据
    • head()查看前几条数据,默认5条
    • tail()查看后几条数据,默认5条
import numpy as np
import pandas as pd
s = pd.Series({
    '语文':100,
    '数学':140,
    '英语':130,
    '物理':110,
    '化学':98,
    '生物':80,
},name='成绩')
print('s:\n',s)
head = s.head(2)
print('head:\n',head)
tail = s.tail(2)
print('tail:\n',tail)
  • 检测缺失数据
    • pd.isnull():判断是否为空
    • pd.notnull():判断是否不为空
    • isnull():判断是否为空
    • notnull():判断是否不为空
import numpy as np
import pandas as pd
s = pd.Series(['dog','cat','pig',np.nan])
print('s:\n',s)
print('isnull判断:\n',s.isnull())
print('pd.isnull判断:\n',pd.isnull(s))
print('notnull判断:\n',s.notnull())
print('pd.notnull判断:\n',pd.notnull(s))
  • 使用bool值索引过滤数据
import pandas as pd
s = pd.Series(['dog','cat','pig',np.nan])
print('s:\n',s)
mid1 = s.isnull()
data1 = s[~mid1] # ~:取反符号
print('data1:\n',data1)
mid2 = s.notnull()
data2 = s[mid2]
print('data2:\n',data2)

7.series的运算

  • series与数的运算,适用于numpy的数组运算也适用于series
import numpy as np
import pandas as pd
s = pd.Series(np.random.randint(10,100,size=10))
print('s:\n',s)
#基本算数运算
print('加法\n',s + 10)
print('减法\n',s - 10)
print('乘法\n',s * 10)
print('除法\n',s / 10)
print('整除\n',s // 10)
print('幂运算\n',s ** 2)
print('取余\n',s % 10)
  • series之间的运算
    • 在运算中对应索引相运算
    • 如果索引不对应,则补齐为NaN
    • 如果不想用NaN补齐,可以使用.add()函数,设置一个默认值
    • 没有广播机制
import numpy as np
import pandas as pd
s1 = pd.Series(np.random.randint(10,100,size=3))
s2 = pd.Series(np.random.randint(10,100,size=4))
print('s1:\n',s1)
print('s2:\n',s2)
#基本算数运算
print('加法\n',s1 + s2)
#使用.add()方法
print('结果\n',s1.add(s2,fill_value=0))

知识点为听课总结笔记,课程为B站“千锋教育Pandas数据分析从入门到实战,零基础小白保姆级Python数据分析教程”:001_Pandas_Pandas介绍_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值