You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在utils.py的Data_load类中实现CSV多列加载并在main.py调用显示

解决方案:重构Data_load类并读取完整CSV数据

嗨,新年快乐呀!我来帮你把代码理顺,让你既能把数据加载逻辑封装到类里,又能读取CSV的所有列和表头~

第一步:修改utils.py的Data_load类

首先,我们要调整readMyFile方法,让它能读取所有列(原来只取了row[0],这就是你只能拿到单列的原因),同时把它改成类的实例方法(加上self参数),最后在类的初始化方法里完成数据加载,把结果存为实例属性,方便后续调用。

修改后的utils.py代码如下:

import csv
import pandas as pd

class Data_load():
    def __init__(self, filename):
        # 初始化时直接调用读取方法,把结果存为实例属性self.df
        self.df = self.readMyFile(filename)

    def readMyFile(self, filename):
        file_data = []
        with open(filename, 'r') as csvDataFile:
            csvReader = csv.reader(csvDataFile, delimiter=';')
            # 遍历每一行,把整行数据加入列表(不再只取row[0])
            for row in csvReader:
                file_data.append(row)
        # 把读取到的列表转成DataFrame,第一行作为表头
        # 这里用file_data[0]当表头,后面的行当数据
        df = pd.DataFrame(file_data[1:], columns=file_data[0])
        return df

第二步:在main.py中调用类并获取完整数据

现在你可以在main.py里直接实例化Data_load类,传入你的CSV文件路径,然后就能直接拿到带所有列和表头的DataFrame了:

from utils import Data_load

# 实例化类,传入你的文件路径
data_loader = Data_load('C:\\...\\count_all_terminate.csv')
# 打印完整数据
print(data_loader.df)

关键说明

  • 为什么之前只有单列?因为原来的代码里file.append(row[0])只取了每行的第一列,现在改成file_data.append(row)就能拿到整行的所有列了。
  • 怎么设置表头?我们用读取到的第一行(file_data[0])作为DataFrame的列名,剩下的行(file_data[1:])作为数据内容,这样就自动带上表头了。

内容的提问来源于stack exchange,提问作者Hubsandspokes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:22:44