如何遍历pandas DataFrame每行生成对象并存储到列表
实现方案
完整可运行代码
你需要先定义Student类,再遍历DataFrame行生成实例存入列表,完整代码如下:
import pandas as pd # 定义Student类,属性和你读取的DataFrame列对应 class Student: def __init__(self, firstname, lastname, status, gpa): self.firstname = firstname self.lastname = lastname self.status = status self.gpa = gpa students = [] # pd.read_csv返回结果本身就是DataFrame,无需二次转换 df = pd.read_csv('students.txt') # 遍历方法1:iterrows,逻辑直观适合小数据量 for index, row in df.iterrows(): # 用每行数据创建Student对象 stu = Student( firstname = row['firstname'], lastname = row['lastname'], status = row['status'], gpa = row['gpa'] ) # 添加到列表 students.append(stu) # 测试验证:输出第一个学生的信息 print(students[0].firstname, students[0].lastname, students[0].gpa)
高效遍历优化(数据量超过1000行推荐)
iterrows遍历性能较差,数据量较大时可以用itertuples替代,遍历逻辑替换为以下代码即可:
for row in df.itertuples(index=False): stu = Student( firstname = row.firstname, lastname = row.lastname, status = row.status, gpa = row.gpa ) students.append(stu)
内容的提问来源于stack exchange,提问作者riven
相关产品推荐
相关产品推荐

