Python — Создание классов и методов расчета с использованием входных данных фреймов данных

#python #object

Вопрос:

Мне нужно создавать классы и методы для различных этапов расчета:

У меня есть фрейм данных с числовыми столбцами A,B,C.

Я хочу, чтобы класс инициализировал столбцы фрейма данных в качестве входных данных, чтобы я мог вызывать следующие методы:

Метод1: сумма(А)

Метод2: сумма(А)*В

Как вы это делаете на Python?

Я знаю, что это действительно общий вопрос, но я сталкивался только с действительно абстрактными учебниками по ООП. Мне нужно более подробно рассказать о расчетах и финансах. Хороший источник для какого — нибудь учебника также поможет.

Спасибо,

Канзас

Комментарии:

1. Можете ли вы подробнее объяснить, что вы подразумеваете под «инициализацией столбцов»? Вы хотите убедиться, что в кадре определены столбцы A и B? Вы хотите заполнить его мусорными данными?

2. Итак, я получил фрейм данных под названием df, который уже заполнен числовыми данными в столбцах df[«A»] и df[«B»]. Теперь один метод 1 должен, например, выполнять df[«A»].sum (), а метод 2 должен выполнять df[«A»].sum() *df[«B]. Это понятнее?

3. Таким образом, вы на самом деле не хотите изменять df, вы просто хотите передать его своим методам в качестве входного параметра?

4. Да, совершенно верно. Входными данными должны быть числовые столбцы

Ответ №1:

Ты можешь сделать вот так.

 import pandas as pd import numpy as np   class MyCalculator:  def __init__(self, df):  self.df = df   def m1(self):  return self.df['A'].sum()   def m2(self):  # return np.multiply(self.m1(), self.df['B']).values  return np.multiply(self.m1(), self.df['B']).values.reshape(-1, 1)   d = {  'A': [1, 2, 3],  'B': [4, 5, 6],  'C': [7, 8, 9] }   def main():  df = pd.DataFrame(d)  print(f'frame:n {df}')   b = MyCalculator(df)  print(f'method 1:n {b.m1()}')  print(f'method 2:n {b.m2()}')   # start main()  

Выход:

 frame:  A B C 0 1 4 7 1 2 5 8 2 3 6 9 method 1:  6 method 2:  [[24]  [30]  [36]]