Python数据分析(pandas入门)

这篇博客介绍了pandas的两种核心数据结构——Series和DataFrame。Series是带有索引的一维数据结构,允许存在缺失值,可通过isnull和notnull函数检查。DataFrame则是一种二维表格型数据结构,包含多列不同类型的系列,并拥有行和列索引。运算时,Series和DataFrame会自动对齐索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas 数据结构介绍

两种数据结构:Series 和 DataFrame;

Series

由一组数据和与之相关的一组数据标签(索引)组成,可以用 index 和 value 分别规定索引和值,若不规定索引,默认自动创建 0 到 N-1 的索引

  import pandas as pd
  
  s1 = pd.Series([1,2,3], index=['a','b','c'])      # Series可以设置索引,有点像字典
  #print(s1)
  #print(s1.values)                                 # Series的值
  #print(s1.index)                                  # Series的索引
  #print(s1.['a'])                                  # 根据索引取值
  #print(s1[['a','b']])                             # 根据索引取值
  # 'b' in s1
  # 'a' in s1
  
  >>> dict = {'a':1,'b':2,'c':3}
  >>> s2 = pd.Series(dict)                    # 可以用字典直接创建Series
  # Series 中的索引就是原字典的键(有序排列)
  >>> print(s2)
  a   1
  b   2
  c   3
  • Series缺失值

    dict = {'a':1,'b':2,'c':3}
    status = ['a','b','c','d']
    s3 = pd.Series(dict,index=status)
    print(s3)
    

    在这里插入图片描述
    该例中,dict 和 status 索引相匹配的三个值会被找出来并放到相应位置,但由于 ‘d’ 所对应的 dict 值找不到,所以其结果就是 NaN(即“非数字”(not a number),在pandas中,它用于表示缺失或NA值);pandas 的 isnull 和 notnull函数可用于检测缺失数据
    在这里插入图片描述
    在这里插入图片描述
    Series 也有类似的实例方法:
    在这里插入图片描述

  • Series数据对齐
    对于许多应用而言,Series 最重要的一个功能就是:它在算术运算中会自动对齐不同索引的数据

     >>> s3                   >>> s2
      a    1.0					a	1
      b    2.0					b	2
      c    3.0					c	3
      d    NaN
      #
     >>> s3 + s2
      a    2.0
      b    4.0
      c    6.0
      d    NaN
    
  • Series索引修改
    Series 的索引可以通过赋值的方式修改:

    >>> s3.index=['甲','乙','丙','丁']
    >>> print(s3)
    甲	1.0
    乙	2.0
    丙	3.0
    丁	NaN
    

DataFrame

DataFrame 是一种表格型结构,含有一组有序列,每列可以是不同的数据类型。即有行索引,也有列索引,可看做是由 Series 组成的字典(使用共同的索引)

  #构建DataFrame可以直接传入等长的列表或Series组成的字典
  #不等长会产生错误
  data = {                         
	'year' : [15,16,17,18],      
	'income' : [100,200,300,400],
	'pay' : [500,400,300,200]    
  }                  
  df1 = pd.DataFrame(data)                                            # 是按照列名进行列排序                             
  df2 = pd.DataFrame(data,columns=['income','year','pay']             # 指定列后就按指定的列排序
  print(df1)              
  print(df2)
  df1.columns							# 列
  df1.index                    		# 行
  df1.value							# 值
  
  # 可以有空列,index是行名
  df3 = DataFrame(data,columns=['a','b','c','d'],index = ['one','two','three'])
  
  print df3['a']												#用字典方式取列数据
  print df3.b
  #列数据的修改直接选出来重新赋值即可
  
  print df3.ix['two']                             			#行,可以用行名或者行数来进行选取
  #为列赋值,如果是Series,规定了index后可以精确赋值
  df3['d'] = Series([100,200,300],index = ['two','one','three'])
  print df3
  
  del df3['d']												#删除列用del 函数
  
其他:
	
	df1.describe()						# 数据描述
	df1.sort_index(axis=1)				# 列排序
	df1.sort_index(axis=0)				# 行排序
	df1.sort_values(by='year')            # 排序year列的值 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值