如何在提取包含多个值的 CSV 文件后构建实例
How to build instances after extracting a CSV file containing multiples values
我正在尝试从包含员工并从静态方法中提取的 CSV 文件创建 class 员工的多个实例。从现在开始,我可以获得这些员工的列表,但我想要的是立即将这些值分配给实例变量。
这是我的代码:
class 雇员():
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
假设 Employee 接收 3 个参数(name、last 和 salary),你可以替换
new_emp += (line['Name'], line['Last'], line['Salary'])
与
new_emp.append(Employee(line['Name'], line['Last'], line['Salary']))
为您迭代的每一行创建一个新的 Employee 实例并将其附加到 new_emp
列表。
希望这对您有所帮助。
您可以使用 pandas.DataFrame.sample 提取行式数据。
这是上面link官方文档中的例子
生成示例系列
>>> 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 上使用它来提取整行中的元素。
我正在尝试从包含员工并从静态方法中提取的 CSV 文件创建 class 员工的多个实例。从现在开始,我可以获得这些员工的列表,但我想要的是立即将这些值分配给实例变量。
这是我的代码:
class 雇员():
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
假设 Employee 接收 3 个参数(name、last 和 salary),你可以替换
new_emp += (line['Name'], line['Last'], line['Salary'])
与
new_emp.append(Employee(line['Name'], line['Last'], line['Salary']))
为您迭代的每一行创建一个新的 Employee 实例并将其附加到 new_emp
列表。
希望这对您有所帮助。
您可以使用 pandas.DataFrame.sample 提取行式数据。
这是上面link官方文档中的例子
生成示例系列
>>> 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 上使用它来提取整行中的元素。