2015-01-17 3 views
0

Say у меня есть следующий DataFrame:DataFrame Панды формула обновления

ds = pd.DataFrame(np.abs(randn(3, 4)), index=[1,2,3], columns=['A','B','C','D']) 

ds 
     A   B   C   D 
1 1.099679 0.042043 0.083903 0.410128 
2 0.268205 0.718933 1.459374 0.758887 
3 0.680566 0.538655 0.038236 1.169403 

, и я хотел бы добавить столбец Е, что ds['E'] = row_sum(ds['A'],ds['B'])

, и если один из значений в столбцах «A» или ' B»меняется„E“обновляется автоматически (по аналогии с Excel)

+0

Я не думаю, что это сработало бы так, но для простых формул было бы очень быстро пересчитать ценности, также вы не должны думать, что dataframe сопоставим в таблицу Excel, где вы можете связать функцию с другими ячейками в dataframe. – EdChum

+0

. Мой «реальный вопрос» касался ситуации, когда имеется большое количество столбцов, а затем время рекоммутации может значительно увеличиться. – user3847638

+0

. Тем не менее автоматическое обновление столбец только потому, что он основан на вычислениях в другом столбце, вам придется добавить некоторый код для обработки этого – EdChum

ответ

0

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

def ds_e(ds): 
    return row_sum(ds['A'],ds['B']) 

, который в основном такой же :)

+0

Я хотел сказать, что создание такой функции прост, и я хотел бы назначить формулу для нового столбца «E», так что любое изменение значений переменных формулы также изменит столбец «E», без необходимости снова вызовите эту функцию – user3847638

+0

, вы можете просто использовать функцию вместо столбца. Это не то же самое, но закрыть –

+0

Дело в том, что если вы хотите создать новый столбец «F» с формулой, основанной на «E», добавление функции усложнит код – user3847638

Смежные вопросы