• 售前

  • 售后

热门帖子
入门百科

pandas的Series类型与根本操纵详解

[复制链接]
陈陈430 显示全部楼层 发表于 2021-10-26 12:57:56 |阅读模式 打印 上一主题 下一主题
目次


  • 1 Series

    • 1.1创造一个serise数据
    • 1.2 指定index
    • 1.3 用dictionary构造一个series
    • 1.4 用numpy ndarray构造一个Series
    • 1.5 选择数据
    • 1.6 利用数据
    • 1.7 查找
    • 1.8 Series赋值
    • 1.9 满意条件的统一赋值


1 Series

线性的数据结构, series是一个一维数组
Pandas 会默然用0到n-1来作为series的index, 但也可以本身指定index( 可以把index明确为dict内里的key )

1.1创造一个serise数据
  1. import pandas as pd
  2. import numpy as np
  3. ​s = pd.Series([9, 'zheng', 'beijing', 128])
  4. ​print(s)
复制代码
打印
  1. 0 9
  2. 1 zheng
  3. 2 beijing
  4. 3 128
  5. dtype: object
复制代码
访问此中某个数据
  1. print(s[1:2])
  2. # 打印
  3. 1 zheng
  4. dtype: object
复制代码
Series类型的基本利用:
Series类型包括index和values两部分
  1. In [14]: a = pd.Series({'a':1,'b':5})
  2. In [15]: a.index
  3. Out[15]: Index(['a', 'b'], dtype='object')
  4. In [16]: a.values #返回一个多维数组numpy对象
  5. Out[16]: array([1, 5], dtype=int64)
复制代码
Series类型的利用类似ndarray类型
  1. #自动索引和自定义索引并存,但不能混用
  2. In [17]: a[0] #自动索引
  3. Out[17]: 1
  4. #自定义索引
  5. In [18]: a['a']
  6. Out[18]: 1
  7. #不能混用
  8. In [20]: a[['a',1]]
  9. Out[20]:
  10. a 1.0
  11. 1 NaN
  12. dtype: float64
复制代码
Series类型的利用类似Python字典类型
  1. #通过自定义索引访问
  2. #对索引保留字in操作,值不可以
  3. In [21]: 'a' in a
  4. Out[21]: True
  5. In [22]: 1 in a
  6. Out[22]: False
复制代码
Series类型在运算中会主动对齐差异索引的数据
  1. In [29]: a = pd.Series([1,3,5],index = ['a','b','c'])
  2. In [30]: b = pd.Series([2,4,5,6],index = ['c,','d','e','b'])
  3. In [31]: a+b
  4. Out[31]:
  5. a  NaN
  6. b  9.0
  7. c  NaN
  8. c, NaN
  9. d  NaN
  10. e  NaN
  11. dtype: float64
复制代码
Series对象可以随时修改并马上见效
  1. In [32]: a.index = ['c','d','e']
  2. In [33]: a
  3. Out[33]:
  4. c 1
  5. d 3
  6. e 5
  7. dtype: int64
  8. In [34]: a+b
  9. Out[34]:
  10. b  NaN
  11. c  NaN
  12. c,  NaN
  13. d  7.0
  14. e  10.0
  15. dtype: float64
复制代码
1.2 指定index
  1. import pandas as pd
  2. import numpy as np
  3. ​s = pd.Series([9, 'zheng', 'beijing', 128, 'usa', 990], index=[1,2,3,'e','f','g'])​
  4. print(s)
复制代码
打印
  1. 1 9
  2. 2 zheng
  3. 3 beijing
  4. e 128
  5. f usa
  6. g 990
  7. dtype: object
复制代码
根据索引找出值
  1. print(s['f']) # usa
复制代码
1.3 用dictionary构造一个series
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "car": None}
  4. sa = pd.Series(s, name="age")​
  5. print(sa)
复制代码
打印
  1. car NaN
  2. jack 19.0
  3. mary 18.0
  4. ton 20.0
  5. Name: age, dtype: float64
复制代码
检测类型
  1. print(type(sa)) # <class 'pandas.core.series.Series'>
复制代码
1.4 用numpy ndarray构造一个Series

天生一个随机数
  1. import pandas as pd
  2. import numpy as np
  3. num_abc = pd.Series(np.random.randn(5), index=list('abcde'))
  4. num = pd.Series(np.random.randn(5))
  5. print(num)
  6. print(num_abc)
  7. # 打印
  8. 0   -0.102860
  9. 1   -1.138242
  10. 2    1.408063
  11. 3   -0.893559
  12. 4    1.378845
  13. dtype: float64
  14. a   -0.658398
  15. b    1.568236
  16. c    0.535451
  17. d    0.103117
  18. e   -1.556231
  19. dtype: float64
复制代码
1.5 选择数据
  1. import pandas as pd
  2. import numpy as np
  3. s = pd.Series([9, 'zheng', 'beijing', 128, 'usa', 990], index=[1,2,3,'e','f','g'])
  4. print(s[1:3])  # 选择第1到3个, 包左不包右 zheng beijing
  5. print(s[[1,3]])  # 选择第1个和第3个, zheng 128
  6. print(s[:-1]) # 选择第1个到倒数第1个, 9 zheng beijing 128 usa
复制代码
1.6 利用数据
  1. import pandas as pd
  2. import numpy as np​
  3. s = pd.Series([9, 'zheng', 'beijing', 128, 'usa', 990], index=[1,2,3,'e','f','g'])
  4. sum = s[1:3] + s[1:3]
  5. sum1 = s[1:4] + s[1:4]
  6. sum2 = s[1:3] + s[1:4]
  7. sum3 = s[:3] + s[1:]​
  8. print(sum)
  9. print(sum1)
  10. print(sum2)
  11. print(sum3)
复制代码
打印
  1. 2        zhengzheng
  2. 3    beijingbeijing
  3. dtype: object
  4. 2        zhengzheng
  5. 3    beijingbeijing
  6. e               256
  7. dtype: object
  8. 2        zhengzheng
  9. 3    beijingbeijing
  10. e               NaN
  11. dtype: object
  12. 1               NaN
  13. 2        zhengzheng
  14. 3    beijingbeijing
  15. e               NaN
  16. f               NaN
  17. g               NaN
  18. dtype: object
复制代码
1.7 查找

是否存在
  1. USA in s # true
复制代码
范围查找
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
  4. sa = pd.Series(s, name="age")
  5. print(sa[sa>19])
复制代码


中位数
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
  4. sa = pd.Series(s, name="age")
  5. print(sa.median()) # 20
复制代码
判断是否大于中位数
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
  4. sa = pd.Series(s, name="age")
  5. print(sa>sa.median())
复制代码


找出大于中位数的数
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
  4. sa = pd.Series(s, name="age")
  5. print(sa[sa > sa.median()])
复制代码


中位数
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
  4. sa = pd.Series(s, name="age")
  5. more_than_midian = sa>sa.median()
  6. print(more_than_midian)
  7. print('---------------------')
  8. print(sa[more_than_midian])
复制代码



1.8 Series赋值
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
  4. sa = pd.Series(s, name="age")
  5. print(s)
  6. print('----------------')
  7. sa['ton'] = 99
  8. print(sa)
复制代码



1.9 满意条件的统一赋值
  1. import pandas as pd
  2. import numpy as np
  3. s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
  4. sa = pd.Series(s, name="age")
  5. print(s) # 打印原字典
  6. print('---------------------') # 分割线
  7. sa[sa>19] = 88 # 将所有大于19的同一改为88
  8. print(sa) # 打印更改之后的数据
  9. print('---------------------') # 分割线
  10. print(sa / 2) # 将所有数据除以2
复制代码

到此这篇关于pandas的Series类型与基本利用详解的文章就先容到这了,更多干系pandas Series基本利用内容请搜索草根技能分享从前的文章或继续浏览下面的干系文章希望各人以后多多支持草根技能分享!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作