如何在提取包含多个值的CSV文件后构建实例

时间:2017-12-06 04:19:40

标签: python python-3.x csv extract

我正在尝试从包含员工的CSV文件中创建Employee类的多个实例,并从静态方法中提取。从现在起我就可以获得这些员工的列表,但我想要的是立即将这些值分配给实例变量。

这是我的代码:

class Employees():

nums_of_employees = 0

def __init__(self, name, last, salary):

    self.name = name
    self.last = last
    self.salary = salary
    Employees.nums_of_employees +=1

def data(self):
    print(f'Name: {self.name} LastName: {self.last} Salary: {self.salary}')

@staticmethod
def extract_csv():
    new_emp = []
    with open('Employees.csv', 'r') as data_file:
        csv_data = csv.DictReader(data_file)
        next(csv_data)

        for line in csv_data:
            new_emp += line['Name'], line['Last'], line['Salary']

        return new_emp

2 个答案:

答案 0 :(得分:1)

假设Employee接受3个参数(姓名,姓氏和工资),您可以替换

new_emp += (line['Name'], line['Last'], line['Salary'])

new_emp.append(Employee(line['Name'], line['Last'], line['Salary']))

为您迭代的每一行创建一个新的Employee实例,并将其附加到new_emp列表。

答案 1 :(得分:0)

希望这有帮助。

您可以使用pandas.DataFrame.sample提取行方式数据。

这是上面链接的官方文档中的示例

生成示例系列

>>> s = pd.Series(np.random.randn(50))
>>> s.head()
0   -0.038497
1    1.820773
2   -0.972766
3   -1.598270
4   -1.095526

从系列中提取3个随机元素:

>>> s.sample(n=3)
27   -0.994689
55   -1.049016
67   -0.224565
dtype: float64

您还可以在pandas的DataFrame上使用它,以提取整行中的元素。