Pandas按行遍历Dataframe的方法主要有两种:
iterrows()
和
itertuples()
,具体用法如下:
# 构建数据集
import
pandas
as
pd
import
numpy
as
np
N
=
20
dataset
=
pd
.
DataFrame
(
{
'date'
:
pd
.
date_range
(
start
=
'2016-01-01'
,
periods
=
N
,
freq
=
'D'
)
,
'x1'
:
np
.
linspace
(
0
,
stop
=
N
-
1
,
num
=
N
)
,
'x2'
:
np
.
random
.
rand
(
N
)
,
'x3'
:
np
.
random
.
choice
(
[
'Low'
,
'Medium'
,
'High'
]
,
N
)
.
tolist
(
)
,
'x4'
:
np
.
random
.
normal
(
100
,
10
,
size
=
(
N
)
)
.
tolist
(
)
}
)
# 显示前五行
pd
.
set_option
(
'display.max_columns'
,
None
)
print
(
dataset
.
head
(
)
)
# 第一种遍历方法:iterrows()
# 每一行返回一个2元素的元组
# 元组的第一个元素是该行的索引值
# 第二个元素是一个Series对象,该Series对象的值为剩余的行值
for
item
in
dataset
.
iterrows
(
)
:
# 获取行索引
print
(
'获取行索引:'
,
item
[
0
]
)
# 获取该行全部字段
print
(
'\n获取该行全部字段:\n'
,
item
[
1
]
)
# 获取该行x4的值
print
(
'\n获取该行的x4值:'
,
item
[
1
]
[
'x4'
]
)
break
# 第二种遍历方法:itertuples()
# 每一行返回一个Pandas对象
# 该Pandas对象的第一个元素是该行的索引值
# 剩余元素的值为剩余的行值
for
item
in
dataset
.
itertuples
(
)
:
# 获取所有列标签
print
(
'获取所有列标签: '
,
item
.
_fields
)
# 获取行索引
print
(
'\n获取行索引: '
,
item
.
Index
)
# 获取该行的x4值
print
(
'\n获取该行的x4值: '
,
item
.
x4
)
break