文章目录
- 取Dataframe特定的行/列
- 取特定的列
- 按列名选取列
- 取特定的行
- 按行名选取行
- 按数字选取行
- 同时选取行和列
- 按名称选取
- 按数字选取
- 按行/列遍历Dataframe的值
- 按行遍历
- 按列遍历
取Dataframe特定的行/列
取特定的列
按列名选取列
构造一个简单的dataframe:
按列名选取一列:
df[[‘a’]]:类型为dataframe
这里df[‘a’]也可以返回一列,但类型为Series
按列名选取多列:
df[[‘a’,‘b’,‘c’]]:必须使用双层括号,返回类型为dataframe
取特定的行
按行名选取行
使用loc函数
同理,使用双括号:
在选取连续多行时还可以使用冒号。由于冒号本身构造了一层列表,这时外面只是用一层中括号即可:
按数字选取行
使用iloc函数
与loc同理,可以使用离散值构成列表或者连续的列表:
同时选取行和列
按名称选取
使用loc函数,df.loc[行标签,列标签]
同理,行和列分别构造列表,用逗号隔开,最后再加一层中括号
按数字选取
使用iloc函数
按行/列遍历Dataframe的值
在百度搜索“pandas按行列遍历dataframe的方式”,有几篇文章的结论似乎和实验结果并不一致。这里记录一些实验证明的正确方式:
按行遍历
iterruples()函数:df.itertuples()整体返回一个map值,其每个元素row对应一行,使用getattr() 取该行中某一列的值。
注意,这里并不能用row[name]进行访问:
按列遍历
iteritems()函数:返回值的每个元素col对应一列.
需要注意的是:col[0]对应该列的列名,col[1]对应该列的所有值.因此要访问每列的某一行值,应当对col[1]继续索引: