文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

pandas中的series数据类型

2023-01-30 23:28

关注
import pandas as pd
import numpy as np
import names

'''
写在前面的话:
    1、series与array类型的不同之处为series有索引,而另一个没有;series中的数据必须是一维的,而array类型不一定
    2、可以把series看成一个定长的有序字典,可以通过shape,index,values等得到series的属性
'''
# 1、series的创建
'''
(1)由列表或numpy数组创建
        默认索引为0到N-1的整数型索引,如s1;
        可以通过设置index参数指定索引,如s2;
        通过这种方式创建的series,不是array的副本,即对series操作的同时也改变了原先的array数组,如s3
(2)由字典创建
        字典的键名为索引,键值为值,如s4;
'''
n1 = np.array([1, 4, 5, 67, 7, 43, ])
s1 = pd.Series(n1)
# print(s1)
'''
0     1
1     4
2     5
3    67
4     7
5    43
dtype: int32
'''
s2 = pd.Series(n1, index=['a', 'b', 'c', 'd', 'e', 'f'])
# print(s2)
'''
a     1
b     4
c     5
d    67
e     7
f    43
dtype: int32
'''
# print(n1)
'''
[ 1  4  5 67  7 43]
'''
s1[2] = 100
s3 = s1
# print(s3)
'''
0      1
1      4
2    100
3     67
4      7
5     43
dtype: int32
'''
# print(n1)
'''
[  1   4 100  67   7  43]
'''
dict1 = {}
for i in range(10, 15):
    # names.get_last_name(),随机生成英文名字
    dict1[names.get_last_name()] = i
s4 = pd.Series(dict1)
# print(s4)
'''
Poole     10
Allen     11
Davis     12
Roland    13
Brehm     14
dtype: int64
'''
# 2、series的索引
'''
(1)通过index取值,可以通过下标获取,也可以通过指定索引获取,如s6,s7
(2)通过.loc[](显示索引)获取,这种方式只能获取显示出来的索引,无法通过下标获取,如s7(推荐)
(3)隐式索引,使用整数作为索引值,使用.icol[],如s9(推荐)
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a     1
b     5
c     9
d     7
e     6
f     4
g    52
h     8
dtype: int32
'''
s6 = s5[2]
# print(s6)
'''
9
'''
s7 = s5['c']
# print(s7)
'''
c    9
dtype: int32
'''
s8 = s5.loc['c']
# print(s8)
'''
c    9
dtype: int32
'''
s9 = s5.iloc[2]
# print(s9)
'''
9
'''
# 3、series的切片
'''
    1、series的切片和列表的用法类似,不同之处在于建议使用.loc[:]和.iloc[:],如s10和s11。当然直接使用[:]也可以。
    2、当遇到特别长的series,我们支取出前5条或后5条数据时可以直接使用.head()或.tail()
'''
s5 = pd.Series(np.array([1, 5, 9, 7, 6, 4, 52, 8]), index=[list('abcdefgh')])
# print(s5)
'''
a     1
b     5
c     9
d     7
e     6
f     4
g    52
h     8
dtype: int32
'''
s10 = s5.loc['b':'g']
# print(s10)
'''
b     5
c     9
d     7
e     6
f     4
g    52
dtype: int32
'''
s11 = s5.iloc[1:7]
# print(s11)
'''
b     5
c     9
d     7
e     6
f     4
g    52
dtype: int32
'''
# 4、关于NaN
'''
    (1)NaN是代表空值, 但不等于None。两者的数据类型不一样,None的类型为<class 'NoneType'>,而NaN的类型为<class 'float'>;
    (2)可以使用pd.isnull(),pd.notnull(),或自带isnull(),notnull()函数检测缺失数据
'''
# print(type(None),type(np.nan))
'''
<class 'NoneType'> <class 'float'>
'''
s12 = pd.Series([1,2,None,np.nan],index=list('烽火雷电'))
# print(s12)
'''
烽    1.0
火    2.0
雷    NaN
电    NaN
dtype: float64
'''
# print(pd.isnull(s12))
'''
烽    False
火    False
雷     True
电     True
dtype: bool
'''
# print(pd.notnull(s12))
'''
烽     True
火     True
雷    False
电    False
dtype: bool
'''
# print(s12.notnull())
'''
烽     True
火     True
雷    False
电    False
dtype: bool
'''
# print(s12.isnull())
'''
烽    False
火    False
雷     True
电     True
dtype: bool
'''
# 取出series中不为空的值
# print(s12[s12.notnull()])
'''
烽    1.0
火    2.0
dtype: float64
'''
# series的name属性
'''

'''
s12.name = '风水'
# print(s12)
'''
烽    1.0
火    2.0
雷    NaN
电    NaN
Name: 风水, dtype: float64
'''

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯