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