Dataframe的用法

使用Panda库读取文件时,经常会返回一个Dataframe结构的数据,本文主要记录一下如果操作该数据结构。

读取Dataframe

filename = ‘XXX’
data = pd.read_csv(filename, sep=,)
data = np.array(data)

这个函数(read_csv)有几个参数比较重要,一个是encoding,可以选择utf-8,避免中文乱码;另一个是index_col,用于行索引的列标号或者列名;再是header,用于列名的行号,pd.read_csv函数中默认为0(默认第一行就是列名,不读进去),如果第一行不是列名,而是正儿八经的数据,那就令header=None

方法1:直接操作Dataframe

假设数据如下:
在这里插入图片描述

  • 我们可以直接根据列名选取一列,返回一个Series,例如 : data["id"] 这样直接返回这一列
  • 也可以同时选择多个列,例如data["id",'AL'],就返回两个列
    如果我们想返回行,不可以直接输入数字,要以切片的形式:data[0:3] 返回1,2,3行
    再举几个例子:data[:2] 返回1,2行 data[2:] 返回第3行以后的行
  • 注意1,这里的切片它的区间是左闭右开的,右边最后一个取不到
  • 注意2:如果想同时取行列,必须要用两个中括号 因为你想啊,如果只有一个中括号,例如data[0:2,"id","AL"] 这样其实相当于取列,因为是逗号隔开的,取列用逗号隔开(因为这个逗号本身就不是行列的分隔符,与数组中的逗号不一样,数组中逗号是行列分隔符),但是前面的0:2明显又不是取列的操作,所以会报错! 正确做法是data[0:2]["AL","id"]
  • 注意3:这个不能用切片的方法取列,切片的只能取行。例如data['id':'AL']是错误的 。 所以这种方法操作起来并不方便,通常用以下两种方法。

方法2:利用loc()操作Dataframe`

  • loc(location),这在教室里找不认识的同学的位置一样的,找人肯定要知道名字或者身高形体(条件),所以loc只能用条件或者行列的名字来进行筛选
  • 读取某一列:data.loc[,:"id"] data.loc[:,"id":"AL"] 这个就和操作正常数组是一样的
  • 读取某一行:data.loc[2,:] (这个2是指行名,如果没有行名,也就是index_col=None,就直接写行号(行号就是123456这种,行名就是命名))
  • 想要同时读取列和行,可以一个中括号内,也可以两个中括号 data.loc[2,‘id’] 或者 data.loc[2]['id']

方法3:利用iloc()操作Dataframe`

  • iloc(indx location)index是什么,我把它当作是索引位置,第几行第几列的意思,所以iloc是用第几行第几列这样的数字来筛选的。 用行号、列号来操作。
  • 读取某一列:data.iloc[,:3] data.iloc[:,3:6] 这个就和操作正常数组是一样的
  • 读取某一行:data.iloc[2,:] (这个2是指行名)
  • 想要同时读取列和行,可以一个中括号内,也可以两个中括号 data.loc[2,3’] 或者 data.loc[2][3]

drop方法

Dataframe可以通过drop函数直接去掉指定的行或者列(当有些数据不需要时)。例如:

data.drop(1,axis = 0) 去掉第2行

data.drop([1,5,6,8],axis = 0) 去掉第2 6 7 9行

data.drop(‘col1’,axis = 1) 去掉第1列 (假设第一列的列名叫col1)

data.drop([‘col1’, ‘col3’],axis = 1) 去掉第1,3列(假设第1,3列的列名叫col1、col3)

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值