2015-01-17 10 views
0

말은 나는 다음과 같은 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 

을 나는 열을 추가하고 싶습니다 E 등이 ds['E'] = row_sum(ds['A'],ds['B'])

그리고 만약 열 'A'또는 값 중 하나 ' B는 '변경'E '는 나는 그것이 계산 된 열을 추가 할 수 있는지 확실하지 않다

+0

나는 그런 식으로 작동하지 않을 것이라고 생각하지만 값을 다시 계산하는 것이 매우 빠르며, 데이터 프레임이 비슷하다고 생각해서는 안됩니다. 데이터 프레임의 다른 셀에 함수를 바인딩 할 수있는 엑셀 스프레드 시트 – EdChum

+0

"실제 질문"은 많은 수의 열이 있고 재 계산 시간이 크게 늘어날 수있는 상황에 관한 것입니다. – user3847638

+0

여전히 자동 업데이트가 없습니다. 다른 열의 계산에 기반하기 때문에이 열을 처리 할 코드를 추가해야합니다. – EdChum

답변

0

(유사 Excel로) 자동으로 업데이트됩니다,하지만 당신은 항상 함수를 만들 수 있습니다

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

기본적으로 동일합니다 :)

+0

저의 요점은 그러한 함수를 만드는 것이 간단하다는 것입니다. 제가 원했던 것은 새로운 열 'E'에 수식을 할당하여 수식의 변수 값이 변경되면 열이 'E'로 바뀌지 않도록하는 것이 었습니다. 이 함수를 다시 호출하십시오. – user3847638

+0

열 대신 함수를 사용할 수 있습니다. 동일하지는 않지만 닫습니다. –

+0

문제는 'E'를 기반으로하는 수식을 사용하여 새 열 'F'를 만들려는 경우 함수를 추가하면 코드가 복잡해집니다. – user3847638