第一次来写博客,感觉能把自己学习中的东西总结下来是一个很不错的方式,于是来尝试一下,希望会对自己有提升并且自己能坚持下去。
最近开始学习唐宇迪的机器学习课程,刚刚接触pandas不久,经常会被索引弄晕,今天查了一些资料,并付诸实践,于是总结如下。
loc:用于通过行/列标签索引数据
iloc:用于通过行/列号索引数据
ix:通过行/列标签或行/列号索引均可
首先自定义一组数据
import pandas as pd
data=[[1,2,3],[4,5,6]]
index=[1,2]
columns=["a","b","c"]
dt=pd.DataFrame(data,index,columns)
下图是得到的数据
一、loc:标签
1.索引第一行数据
print(dt.loc[1])
得到结果
2.索引第一列数据
这里注意,索引列的时候不能只写列标签,iloc与ix也同样
print(dt.loc[:,"a"])
得到结果
3.索引多行和多列
这里区间都为闭区间1:2包含2,b:c包含c
print(dt.loc[1:2,"b":"c"])
得到结果
二、iloc:行/列号
1.索引第一行数据
这里注意是[0]呀
print(dt.iloc[0])
2.索引第一列数据
print(dt.iloc[:,0])
3.索引多行和多列
注意这里区间都为左闭右开区间,0:2取0和1,
print(dt.iloc[0:2,0:2])
得到结果分别如下
三.ix混合
偷个懒就举一个例子
print(dt.ix[1,0:2])
得到结果
最后再拿最近做的泰坦尼克的案例来举几个例子
import pandas as pd
titanic=pd.read_csv("titanic_train.csv")
print(titanic.head(5))
print(titanic.ix[0,0:3])#取出第0行,0,1,2列数据(不包含3)
print(titanic.loc[1:3,"PassengerId"])#取出第1,2,3行(包含3),passengerID列的数据
print(titanic.iloc[0,0:3])#取出第0行,第0,1,2列数据(不包含3)
结果如下
感觉能通过自己写一遍强化自己对知识的理解,希望能坚持下去。
终于完成了第一次博客,使用不是很熟练,打印的结果不知道有没有更简便的方法。第一次写博客,知识也是刚刚起步,有错误还望各位大神指出。