文章目录

  • 取Dataframe特定的行/列
  • 取特定的列
  • 按列名选取列
  • 取特定的行
  • 按行名选取行
  • 按数字选取行
  • 同时选取行和列
  • 按名称选取
  • 按数字选取
  • 按行/列遍历Dataframe的值
  • 按行遍历
  • 按列遍历


取Dataframe特定的行/列

取特定的列

按列名选取列

构造一个简单的dataframe:

dataframe读取标题 python dataframe读取指定行_c函数

按列名选取一列:

df[[‘a’]]:类型为dataframe

这里df[‘a’]也可以返回一列,但类型为Series

dataframe读取标题 python dataframe读取指定行_numpy_02


按列名选取多列:

df[[‘a’,‘b’,‘c’]]:必须使用双层括号,返回类型为dataframe

dataframe读取标题 python dataframe读取指定行_numpy_03

取特定的行

按行名选取行

使用loc函数

同理,使用双括号:

dataframe读取标题 python dataframe读取指定行_pandas_04


在选取连续多行时还可以使用冒号。由于冒号本身构造了一层列表,这时外面只是用一层中括号即可:

dataframe读取标题 python dataframe读取指定行_c函数_05

按数字选取行

使用iloc函数

与loc同理,可以使用离散值构成列表或者连续的列表:

dataframe读取标题 python dataframe读取指定行_excel_06


dataframe读取标题 python dataframe读取指定行_python_07

同时选取行和列

按名称选取

使用loc函数,df.loc[行标签,列标签]

同理,行和列分别构造列表,用逗号隔开,最后再加一层中括号

dataframe读取标题 python dataframe读取指定行_python_08

按数字选取

使用iloc函数

dataframe读取标题 python dataframe读取指定行_excel_09

按行/列遍历Dataframe的值

在百度搜索“pandas按行列遍历dataframe的方式”,有几篇文章的结论似乎和实验结果并不一致。这里记录一些实验证明的正确方式:

按行遍历

iterruples()函数:df.itertuples()整体返回一个map值,其每个元素row对应一行,使用getattr() 取该行中某一列的值。

dataframe读取标题 python dataframe读取指定行_c函数_10

dataframe读取标题 python dataframe读取指定行_python_11


注意,这里并不能用row[name]进行访问:

dataframe读取标题 python dataframe读取指定行_python_12

按列遍历

iteritems()函数:返回值的每个元素col对应一列.

需要注意的是:col[0]对应该列的列名,col[1]对应该列的所有值.因此要访问每列的某一行值,应当对col[1]继续索引:

dataframe读取标题 python dataframe读取指定行_excel_13


dataframe读取标题 python dataframe读取指定行_pandas_14