数据分析工具Pandas(3):Pandas的对齐运算

举报
DrugAI 发表于 2021/07/15 03:26:21 2021/07/15
【摘要】 数据分析工具Pandas(1):Pandas的数据结构 数据分析工具Pandas(2):Pandas的索引操作 数据分析工具Pandas(3):Pandas的对齐运算 Pandas的对齐运算 是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN Series的对齐运算 1. Series 按行、索引对齐 &nb...

数据分析工具Pandas(1):Pandas的数据结构

数据分析工具Pandas(2):Pandas的索引操作

数据分析工具Pandas(3):Pandas的对齐运算

Pandas的对齐运算

是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充NaN

Series的对齐运算

1. Series 按行、索引对齐

 


      s1 = pd.Series(range(10, 20), index = range(10))
      s2 = pd.Series(range(20, 25), index = range(5))
      print('s1: ' )
      print(s1)
      print('')
      print('s2: ')
      print(s2)
  
 

运行结果:


      s1:
      0 10
      1 11
      2 12
      3 13
      4 14
      5 15
      6 16
      7 17
      8 18
      9 19
      dtype: int64
      s2:
      0 20
      1 21
      2 22
      3 23
      4 24
      dtype: int64
  
 

2. Series的对齐运算

 


      # Series 对齐运算
      s1 + s2
  
 

运行结果:


      0 30.0
      1 32.0
      2 34.0
      3 36.0
      4 38.0
      5 NaN
      6 NaN
      7 NaN
      8 NaN
      9 NaN
      dtype: float64
  
 

DataFrame的对齐运算

1. DataFrame按行、列索引对齐

 


      df1 = pd.DataFrame(np.ones((2,2)), columns = ['a', 'b'])
      df2 = pd.DataFrame(np.ones((3,3)), columns = ['a', 'b', 'c'])
      print('df1: ')
      print(df1)
      print('')
      print('df2: ')
      print(df2)
  
 

运行结果:


      df1:
      a b
      0  1.0  1.0
      1  1.0  1.0
      df2:
      a b c
      0  1.0  1.0  1.0
      1  1.0  1.0  1.0
      2  1.0  1.0  1.0
  
 

2. DataFrame的对齐运算

 


      # DataFrame对齐操作
      df1 + df2
  
 

运行结果:


      a b   c
      0  2.0  2.0 NaN
      1  2.0  2.0 NaN
      2  NaN  NaN NaN
  
 

填充未对齐的数据进行运算

1. fill_value

使用addsubdivmul的同时,

通过fill_value指定填充值,未对齐的数据将和填充值做运算

 


      print(s1)
      print(s2)
      s1.add(s2, fill_value = -1)
      print(df1)
      print(df2)
      df1.sub(df2, fill_value = 2.)
  
 

运行结果:


      # print(s1)
      0 10
      1 11
      2 12
      3 13
      4 14
      5 15
      6 16
      7 17
      8 18
      9 19
      dtype: int64
      # print(s2)
      0 20
      1 21
      2 22
      3 23
      4 24
      dtype: int64
      # s1.add(s2, fill_value = -1)
      0 30.0
      1 32.0
      2 34.0
      3 36.0
      4 38.0
      5 14.0
      6 15.0
      7 16.0
      8 17.0
      9 18.0
      dtype: float64
      # print(df1)
      a b
      0  1.0  1.0
      1  1.0  1.0
      # print(df2)
      a b c
      0  1.0  1.0  1.0
      1  1.0  1.0  1.0
      2  1.0  1.0  1.0
      # df1.sub(df2, fill_value = 2.)
      a b c
      0  0.0  0.0  1.0
      1  0.0  0.0  1.0
      2  1.0  1.0  1.0
  
 

参考资料

 

文章来源: drugai.blog.csdn.net,作者:DrugAI,版权归原作者所有,如需转载,请联系作者。

原文链接:drugai.blog.csdn.net/article/details/104285978

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。