pandas 数据结构

Series常用操作【知道】

  • Series创建:传入一个Python列表
    • 如果传入的数据类型是统一的数字,那么最终的dtype类型是int64
    • 如果传入的数据类型是统一的字符串,那么最终的dtype类型是object
    • 如果传入的数据类型是多种类型,那么最终的dtype类型也是object
# data=,传入要python列表;index=指定行索引,不传的话行索引默认为0,1,2...
pd.Series(data=,index=)

# 例子1
s = pd.Series(['banana', 42])
# 输出结果如下
0    banana
1        42
dtype: object

#例子2
s = pd.Series(['Wes McKinney','Male'],index = ['Name','Gender'])
# 输出结果如下
Name      Wes McKinney
Gender            Male
dtype: object
  • Series常用属性
s.index # 获取行索引,属性
s.keys() # 获取行索引,方法
# 属性后面不加(),方法后面加()

s.values # 获取值
  • Series常用方法
s.mean() # 平均值
s.max() # 最大值
s.min() # 最小值
s.std() # 标准差
s.value_counts() # 不同值(不同类别)的条目数量
s.count() # 非空值个数

s.describe() 
# 输出数值列统计描述:①count非空值个数,②mean平均值,③std标准差,④max最小值,⑤25%四分之一分位值,⑥50%二分之一分位值,⑦75%四分之三分位值,⑧最大值
# 输出非数值列统计描述:①count非空值个数,②unique唯一值个数,③top出现次数最多的值,④freq出现最多值的次数
  • 通过布尔值列表获取Series部分数据
s[[True,False,True,False]]
# 返回为True的值,最后返回两个值
  • Series运算
    • series和数值型变量计算
      • 变量和series中的每个元素逐一进行计算
    • 两个Series之间计算
      • 根据索引匹配规则进行计算,相同的索引进行计算,不同的索引无法计算,用NaN填充

DataFrame常用操作【重要】

  • 常用属性和方法
df.shape # 查看行数,列数
df.size # 查看数据个数
len(df) # 查看数据行数
df.count() # 查看各列非空值个数
df.max() # 查看各列最大值,数值列返回最大值,非数值列返回出现次数最多的值
df.min()
df.describe() # 返回数值列统计描述
  • DataFrame的布尔索引
    • 同Series一样,DataFrame也可以使用布尔索引获取数据子集
# 获取前5行数据中的第1、2、4个
movie.head()[[True,True,False,True,False]]
  • dataframe的运算
    • 当DataFrame和数值进行运算时,DataFrame中的每一个元素会分别和数值进行运算
    • 两个DataFrame之间进行计算,和series一样会根据索引的值进行对应计算
    • 当两个DataFrame索引值不能对应时,不匹配的会返回NaN
    • DataFrame中如果有非数值列,只能进行相加或者相乘的操作,对非数值列进行复制,其他计算会发生报错
  • 指定某列为DataFrame索引
df.set_index('列名') # 括号里列为指定索引列
pd.read_csv('path',index_col='列名') # 加载数据时通过index_col指定某列为df的索引

df.reset_index() # 重置索引,变为0,1,2,3...
  • 修改行名列名
# 方法一
df.rename(index={'原行名1':'新行名1','原行名2':'新行名2'...},columns={'原列名1':'新列名1','原列名2':'新列名2'...},inplace=True)
# index=,columns= 后跟要修改的行列名字典
# inplace=True 在源数据上修改,默认False,在内存或者副本上修改,源数据并没有修改
# 涉及到df修改删除操作,不指定inplace=True,默认源数据不会进行修改,或者将修改的数据重新保存为一个变量名

# 方法二
将df.index 和 df.columns属性提取出来,修改之后,再赋值回去
  • 添加删除插入

    • 通过dataframe['列名']添加新列,添加至最后

      df['新列名'] = 常数
      df['新列名'] = df['列名1'] + df['列名2'] # 数值列加减乘除都可以,一行一行计算
      
    • 删除列

      df.drop('列名',axis='columns',inplace=True) # inplace=True源数据上删除,axis='columns',默认按行删除,axis='index'
      
    • 插入列

      df.insert(loc=列下标数字, column='列名', value=该列所有的值)
      # loc= 插入列的位置,按列索引序号
      # column= 新插入列的名字
      # value= 新插入列的值,可以是常用,也可以是计算完的结果
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值