Python的ndarray和DataFrame访问元素操作总结

Numpy的二维数组(ndarray,或称矩阵)和DataFrame在数据访问方式上有许多相似之处,且有些地方容易让人搞混,因此做了如下简要总结:

ndarray的操作总是按照“先行后列、指定行列”的规则对数据进行访问(索引),而DataFrame则包含了上述方式并且访问方式更多样。

  • Numpy二维数组的切片操作

无论索引多行、多列或者具体元素,都必须按照“先行后列、指定行列”的规则访问数据。

举例如下:

arr[0,0] // 访问单个元素
arr[0:2, 1:2] // 按顺序索引切片
arr[[1,3,8], [2,5]] // 指定某些行或列。使用arr([1,3,8], [2,5])方式错误!!
  • DataFrame的切片操作

与Numpy的二维数组不同的是,DataFrame访问元素时可以只指定行或只指定列。

只索引指定行:

df.iloc[index_name] // 索引单行,返回Series;等效于df.iloc[2]
df.iloc[[ind_name1, ind_name2]] // 索引多行,返回DataFrame;等效于df[[0,2]]

只索引指定列:

df[col_name] // 索引单列,返回Series
df[[col_name1,col_name2]]] // 索引多列,返回DataFrame
df.iloc[:, [col_name1,col_name2]] // 先选取所有行

同时索引行和列

df.iloc[ind_name, col_name] // 索引一个元素
df[col_name][ind_name] // 索引一个元素(基于返回的Sereis及Index,不常用操作!)
df.iloc[[ind_name1,ind_name2]], [col_name1,col_name2]] // 切片操作,多个元素

猜你喜欢

转载自blog.csdn.net/cshy2013/article/details/106121903
今日推荐