[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为时...
[Python] DataFrame的遍历问题
一、问题引出
导入数据,生成时间序列。
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