欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[Python] DataFrame的遍历问题

程序员文章站 2022-03-23 09:12:29
[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())

索引是日期,另外的一列是销量。
[Python] DataFrame的遍历问题
如果用这种方式,输出的只是列名…

for i in time_series:
    print(i)

[Python] DataFrame的遍历问题

二、解决问题

https://blog.csdn.net/sinat_29675423/article/details/87972498
[Python] DataFrame的遍历问题

在网上找了下,发现上面这篇博客提出了三个方法,分别是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])

因为除了索引我只有一列内容,输出前三行数据,如下
[Python] DataFrame的遍历问题

2、DataFrame.iterrows()

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

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

结果如下。
[Python] DataFrame的遍历问题

3、DataFrame.itertuples()

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

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

结果如下。
[Python] DataFrame的遍历问题

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

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

相关标签: Python学习 python