Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2021 13:04:18

ZeroResultDude
Зарегистрирован: 2020-03-04
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Интерпретация ООП в dataframe

Занимаюсь сейчас переносом старого кода из delphi в python. С выразительными средствами pandas dataframe'ов знаком не очень хорошо, поэтому прошу совета. Как с помощью него можно максимально лаконично представить код, аналогичный следующему:

 objectA = objects[0]
for objectB in objects:
    for objectC in objects:
        if objectB != objectC:
            objectA.x = objectA.x + objectB.x + objectC.x

где objects - список экземпляров некоторого класса, имеющего атрибут ‘x’. Суть - переделать данный список в один dataframe.

Основные сложности сводятся к вопросу, как поддержать “сссылочность”, т.е. сохранить указатель на конкретную строку dataframe'а чтобы можно было изменить значение его атрибута в любой момент, аля:

 df = pd.DataFrame(data = {'text' : ['ну', 'ну2'], 'x' : [0, 0], 'y' : [0, 0], 'strength' : [2, 2]}   )
term1 = df.iloc[0]
term1.x = 100

естественно такой код не будет изменять значение строки непосредственно в самом df, но очень хотелось бы как-то получить ссылку на конкретную строчку.

Возможно я где-то хожу вокруг, или вовсе выбрал не тот инструмент для реализации, приветствуются любые советы. А вообще очень привлекает в использовании dataframe это быстрая загрузка/сохранения, без написания сериализаторов. Так же интересно, есть какие либо агрегаторы для экземпляров классов с этой возможностью.

Отредактировано ZeroResultDude (Янв. 12, 2021 13:05:03)

Офлайн

#2 Янв. 12, 2021 16:48:07

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Интерпретация ООП в dataframe

ZeroResultDude
С выразительными средствами pandas dataframe'ов знаком не очень хорошо, поэтому прошу совета
Совет простой, если вы начинающий то не надо пользоваться pandas он большой и мутный. Ссылочность по идее там должна быть из коробки.
ZeroResultDude
А вообще очень привлекает в использовании dataframe это быстрая загрузка/сохранения, без написания сериализаторов.

В питоне практически для любого формата и любого объекта сериализация делается в одну две строчки. Необходимость сериализации не основание для выбора pandas. см piclke например.

Конечно какой инструмент выбрать зависит от задачи. pandas инструмент для работы с объектами типа таблица. те сущностями со строками колонками названиями столбцов, пропущенными данными и т.п.



Офлайн

#3 Янв. 12, 2021 16:48:32

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1359
Репутация: +  119  -
Профиль   Отправить e-mail  

Интерпретация ООП в dataframe

Хотелось бы вам помочь,но не пойму что вам надо.Объясните так:

На входе вот такие данные

 какие-то данные

на выходе чтобы были вот такие данные,вот такого типа
  изменненые данные,в таком-то виде,такого-то типа 

а так вот
 import pandas as pd
data = {'text' : ['ну', 'ну2'], 'x' : [0, 0], 'y' : [0, 0], 'strength' : [2, 2]}
df = pd.DataFrame(data)
print(df,'\n--------------------')
df['x']= 100
print(df,'\n--------------------')
df.loc[0,'text'] = 'sadfasda'
df.loc[1,'x']= 6656
print(df,'\n')

   text  x  y  strength
0   ну  0  0         2
1  ну2  0  0         2 
--------------------
  text    x  y  strength
0   ну  100  0         2
1  ну2  100  0         2 
--------------------
       text     x  y  strength
0  sadfasda   100  0         2
1       ну2  6656  0         2 
Process finished with exit code 0

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version