2013-05-07 3 views
6

Pandas.DataFrame의 모든 열을 함께 곱하여 DataFrame의 모든 행에 대해 단일 값을 얻을 수 있습니까? 팬더 데이터 프레임의 모든 열을 함께 곱하십시오

df = pd.DataFrame(np.random.randn(5,3)*10) 

내가 df2.ix[x,0]df.ix[x,0] * df.ix[x,1] * df.ix[x,2]의 값을 갖게됩니다 새로운 DataFrame df2을 원하는 사용 예를 들어

.

그러나이 코드를 하드 코드하고 싶지는 않습니다. 어떻게 이것을 수행하기 위해 루프를 사용할 수 있습니까?

나는 df.mul(series, axis=1)이라는 함수를 찾았으나 이것을 내 용도로 사용하는 방법을 찾지 못했습니다.

답변

13

당신은 DataFrame.prod()을 사용할 수

>>> df = pd.DataFrame(np.random.randint(1, 10, (5, 3))) 
>>> df 
    0 1 2 
0 7 7 5 
1 1 8 6 
2 4 8 4 
3 2 9 5 
4 3 8 7 
>>> df.prod(axis=1) 
0 245 
1  48 
2 128 
3  90 
4 168 
dtype: int64 

당신은 내가 원래 않았 더라면, 그러나 보통 직접적인 방법이 더 빨리 사용할 수 무엇을 할 수도 applynp.prod.

>>> df = pd.DataFrame(np.random.randint(1, 10, (5, 3))) 
>>> df 
    0 1 2 
0 9 3 3 
1 8 5 4 
2 3 6 7 
3 9 8 5 
4 7 1 2 
>>> df.apply(np.prod, axis=1) 
0  81 
1 160 
2 126 
3 360 
4  14 
dtype: int64 
관련 문제