遍历DataFrame的三种方法
- iteritem()方法返回一个
数据,可利用for循环获得输出 - iterrow()方法返回一个
数据,可利用for循环获得输出 itertuple()方法返回一个
数据,可利用getattr(row,‘列索引’)方法获得对应数据 按列遍历
column_indexs = []for column_index, row_data in frame.iteritems():column_indexs.append(column_index)print(row_data)print(column_indexs)
运行结果
0 Ohio1 Ohio2 Ohio3 Nevada4 Nevada5 NevadaName: state, dtype: object0 20001 20012 20023 20034 20045 2005Name: year, dtype: int640 1.51 1.72 3.63 2.44 2.95 3.2Name: pop, dtype: float64['state', 'year', 'pop']
按行遍历
方法一:
row_indexs = []for index, row in frame.iterrows():row_indexs.append(index)print(row['pop'])print(row)print(row_indexs)
运行结果
state Ohioyear 2000pop 1.5Name: 0, dtype: objectstate Ohioyear 2001pop 1.7Name: 1, dtype: objectstate Ohioyear 2002pop 3.6Name: 2, dtype: objectstate Nevadayear 2003pop 2.4Name: 3, dtype: objectstate Nevadayear 2004pop 2.9Name: 4, dtype: objectstate Nevadayear 2005pop 3.2Name: 5, dtype: object[0, 1, 2, 3, 4, 5]
方法二:
for row in frame.itertuples():print(getattr(row, 'state'), getattr(row, 'year'), getattr(row, 'pop'))print(type(row))
Ohio 2000 1.5<class 'pandas.core.frame.Pandas'>......Nevada 2005 3.2<class 'pandas.core.frame.Pandas'>
获取某个值
DataFrame.at[行索引,列索引]获取某一个值:
print(frame.at[1,'pop'])
DataFrame.iat[默认行索引,默认列索引]获取某一个值:
print(frame.iat[1,1])
