>脚本编程>Python > [Python] DataFrame的遍历问题

[Python] DataFrame的遍历问题

2020年08月10日  | 移动技术网IT编程  | 我要评论
[Python] Datframe的遍历问题一、问题引出二、解决问题一、问题引出导入数据,生成时间序列。io = 'D:/PythonProject/ARIMA/sales_data.csv'data = pd.read_csv(io, header=0, index_col='time')time_series = pd.DataFrame(data)time_series.index = pd.to_datetime(time_series.index)# 输出前5个数据,此时Date为时

一、问题引出

导入数据,生成时间序列。

io = 'D:/PythonProject/ARIMA/sales_data.csv'
data = pd.read_csv(io, header=0, index_col='time')
time_series = pd.DataFrame(data)
time_series.index = pd.to_datetime(time_series.index)
# 输出前5个数据,此时Date为时间索引
print("样本量为{}个".format(len(time_series)))
print(time_series.head())

索引是日期,另外的一列是销量。
在这里插入图片描述
如果用这种方式,输出的只是列名…

for i in time_series:
    print(i)

在这里插入图片描述

二、解决问题

https://blog.csdn.net/sinat_29675423/article/details/87972498
在这里插入图片描述

在网上找了下,发现上面这篇博客提出了三个方法,分别是iteritems()、iterrows()、itertuples(),然后去查了下文档。

1、DataFrame.iteritems()

官方解释:遍历DataFrame列,返回一个带有列名称和内容为Series的元组。可以通过row[index]对元素进行访问。

for column_name, row in time_series.iteritems():
    print(column_name, row[0], row[1], row[2])

因为除了索引我只有一列内容,输出前三行数据,如下
在这里插入图片描述

2、DataFrame.iterrows()

官方解释:按行遍历,将DataFrame行作为(index, Series)对进行迭代。

for index, row in time_series.iterrows():
    print(index, row['value'])

结果如下。
在这里插入图片描述

3、DataFrame.itertuples()

官方解释:按行遍历,将DataFrame的每一行迭代为元组,可以通过row[name]对元素进行访问。

for row in time_series.itertuples():
    # 元组的访问方式
    print(row[0], getattr(row, 'value'))

结果如下。
在这里插入图片描述

DataFrame文档
https://pandas.pydata.org/pandas-docs/stable/reference/frame.html

本文地址:https://blog.csdn.net/lam_yx/article/details/107892806

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网