创建2个DataFrame,一个没有行列命名,一个有行列名。来进行常规切片、loc/iloc索引、布尔索引的对比试验。
1.使用Numpy和pandas创建两个DataFrame
之前别忘了导入Numpy和pandas库。
df1 = pd.DataFrame(np.random.randn(5, 5))
#创建一个DataFrame,但不给行和列命名
df2 = pd.DataFrame(np.arange(20).reshape(4, 5), index=list('ABCD'), columns=list('OPQRS'))
#创建一个DataFrame并给行和列命名
打印出来看下效果:df1:行和列没有命名df2:行和列有命名
2.使用[]和数字
df1[2]df1[2]
df2[2]df2[2]
可以看到df1[2]获取的是第3列的数据,df2[2]却报错了。说明[]+数字获取的是列值,但遇到有列名的情况就会报错。
3.使用[]和列表
df1[[0, 2]]df1[[0, 2]]
df2[[0, 2]]df2[[0, 2]]
df1[[0, 2]]获取的是第1和第3列的数据,df2[[0, 2]]报错。说明[]+列表是通过列名