尝尝pandas(2)
今天来学习pandas中非常重要的内容——数据的选择和赋值。
普通索引和切片
为了演示方便,首先创建一个DataFrame
选取"甲"列数据,注意此方法对行索引无效,即df['A']报错
同时选取"甲"列和"丙"列,注意参数为一个列表
前三行
loc、iloc、at、iat
虽然普通的索引和切片能够满足我们的大部分需求,但是在数据获取方面,使用pandas中的四种方法——loc、iloc、at和iat更加方便。
获取"A"行数据
获取"A"行到"D"行的数据,支持切片
获取"A"行到"D"行的"乙"列数据
获取"A"行到"D"行的"甲"列和"丙"列数据
获取"A"行和"D"行,注意传入的必须是列表
获取第二行
获取前三行
获取1、2、4行,和numpy中的花式索引类似
获取1、2、4行和1、2、3列组成的DataFrame
先来对loc和iloc做个简单的总结:loc和iloc都可以获取DataFrame的行,loc是通过索引index的名称、而iloc是通过索引index所在的行数,如果想要获取某一数据,使用iloc
获取"B"行"丙"列
虽然第二种方法也可以实现同样功能,但是没有第一种直观
再来对at和iat做个总结:和loc与iloc的对应关系一样,at和 iat都可以获取某一数据,但是at只能通过行索引和列索引的名字来获取,而iat则只能通过行索引和列索引所在行列数获取。
布尔索引
把数据中大于12的数据显示出来,其它的设为无效值。
把"甲"列大于10的行取出来
内容为13、23所在的位置为True、其它地方为False
"丁"列内容为13、23所在的位置为True、其它地方为False
把"丁"列数据等于13或23的行取出来,这种做法在数字不连续的情况下非常实用。
从上面的例子可以看出,布尔索引就是把值为True的地方取出来,值为False的地方扔掉。
赋值
赋值的过程和数据的获取过程差不多,只不过赋值是把一个新的数据赋给获取到的数据而已,我就不再多废话了。