DataFrame—数据汇总8

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。 

#示例数据
df = pd.read_csv("pokemon_data.csv",encoding="gbk")
df.head(10)

一.数据选取

Q1:选取第1行的数据(选取单行数据)

(1)按索引标签选取(loc做法)

df.loc[0]   #返回的是Series
df.loc[[0]]  #如果在里面多加一个方括号,那么返回的是DataFrame

(2)按索引位置选取(iloc做法)

df.iloc[0]      #返回的是Series
df.iloc[[0]]  #如果在里面多加一个方括号,那么返回的是DataFrame

相信你一定会很好奇:为什么在这里loc和iloc得到的结果是一样的?

下面会来解释

Q2:选取第2到第5行的数据(选取连续行的数据)

(1)按索引标签选取(loc做法)

df.loc[1:4]

你可能产生了一个疑问:不是说切片的末端是取不到的吗,也就是4这个索引所指向的第5行应该是取不到的

这是因为loc是按照索引标签来选取数据的,而不是根据位置来选取,举个例子:

#以姓名这一列作为索引列
df_name = df.set_index("姓名")
df_name

如果我要返回第2行到第5行的数据,该怎么做呢?

#如果按照刚刚的写法,就会出错
df_name.loc[1:4]
#因为loc是按照索引标签选取的,按照下面这种写法就对了
df_name.loc["Ivysaur":"Charmander"]

 (2)按索引位置选取(iloc做法)

df.iloc[1:5]

我们需要返回的是第2行到第5行,因此对应的索引位置是1:4,但是由于iloc是按照位置来选取数据的,因此末端索引是取不到的,那么末端就需要再加1,这样就能确保第5行能取到了,而取不到第6行

为了能更直观地体现出loc和iloc的区别,接下来以df_name为示例数据

#示例数据
df_name.head(10)

Q3:选取第2行,第4行,第7行,第10行的数据(选取特定行的数据)

(1)按索引标签选取(loc做法)

df_name.loc[["Ivysaur","VenusaurMega Venusaur","Charizard","Squirtle"]]

(2)按索引位置选取(iloc做法)

df_name.iloc[[1,3,6,9]]

Q4:选取攻击力列(选取单列的数据)

(1)直接方括号+列名

#直接方括号输入列名即可,推荐这种方法
df_name["攻击力"]
#返回的是一个Series
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值