Python pandas 按行按列遍历DataFrame
Posted 琲世
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python pandas 按行按列遍历DataFrame相关的知识,希望对你有一定的参考价值。
前言
在对DataFrame数据进行处理时,存在需要对数据内容进行遍历的场景。因此记录一下按照行,列遍历的几种方式。
一、按行遍历
1. 使用loc或iloc方法
- loc:表示location,填写内容为行的值或者列表,若填写内容为值,则返回对应行的内容(Series类型);若填写内容为列表,则返回对应行的内容(DataFrame类型)
- iloc:表示integer+location,填写内容为行的索引(int类型)或者列表,返回内容与loc相同。
因此若需要按照行进行遍历时,
- 先可以使用index方法获取索引内容,再使用loc方法
- 先可以使用shape[0]方法获取总行数,再使用iloc方法
2. 使用iterrows()方法
- iterrows():按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问
因此可以直接使用iterrows()方法,获取得到行内容
代码如下:
data = 'a': 'x': [1, 1], 'y': [2, 1], 'z': [3, 1],
'b': 'x': [1, 2], 'y': [2, 2], 'z': [3, 2],
'c': 'x': [1, 3], 'y': [2, 3], 'z': [3, 3]
data_pd = pd.DataFrame(data)
print(data_pd)
for row in data_pd.index:
print(data_pd.loc[row]['a'])
for row_id in range(data_pd.shape[0]):
print(data_pd.iloc[row_id]['a'])
for index, row in data_pd.iterrows():
print(row['a'])
运行结果,三种方法结果相同:
a b c
x [1, 1] [1, 2] [1, 3]
y [2, 1] [2, 2] [2, 3]
z [3, 1] [3, 2] [3, 3]
[1, 1]
[2, 1]
[3, 1]
二、按列遍历
1. 使用列索引方式
DataFrame可以直接使用[列名称]的方式获取列的值,即data_pd['a']
即可得到列内容。
因此若需要按照列进行遍历时,
- 先可以使用colums方法获取列内容,再使用[列名称]方式
2. 使用iteritems()方法
- iteritems():按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问
因此可以直接使用iteritems()方法,获取得到列内容
代码如下:
data = 'a': 'x': [1, 1], 'y': [2, 1], 'z': [3, 1],
'b': 'x': [1, 2], 'y': [2, 2], 'z': [3, 2],
'c': 'x': [1, 3], 'y': [2, 3], 'z': [3, 3]
data_pd = pd.DataFrame(data)
print(data_pd)
for col in data_pd.columns:
print(data_pd[col].iloc[0])
for index, col in data_pd.iteritems():
print(col.iloc[0])
运行结果,两种方法结果相同:
a b c
x [1, 1] [1, 2] [1, 3]
y [2, 1] [2, 2] [2, 3]
z [3, 1] [3, 2] [3, 3]
[1, 1]
[1, 2]
[1, 3]
以上是关于Python pandas 按行按列遍历DataFrame的主要内容,如果未能解决你的问题,请参考以下文章
R语言创建使用矩阵(按行按列填充,矩阵命名,矩阵下标使用,数据框转换为矩阵)
R语言创建使用矩阵(按行按列填充,矩阵命名,矩阵下标使用,数据框转换为矩阵)