2012-12-18 8 views
11

저는 팬더 데이터 프레임의 초보자입니다. 각 열 x, x/max에 대해 계산하도록 각 열에 함수를 적용하고 싶습니다.팬더 데이터 프레임에 적용 함수

이 질문에 언급되었지만 각 열의 최대 값에 액세스하는 데 문제가 있습니다. 미리 감사드립니다 Pandas DataFrame: apply function to all columns

입력 :

 A B C D 
    0 8 3 5 8 
    1 9 4 0 4 
    2 5 4 3 8 
    3 4 8 5 1 

출력 :

이 같은
 A  B  C D 
    0 8/9 3/8 5/5 8/8 
    1 9/9 4/8 0/5 4/8 
    2 5/9 4/8 3/5 8/8 
    3 4/9 8/8 5/5 1/8 
+0

"0.888 .."으로 충분합니까, 아니면 정말로 '8/9'분수가 필요합니까? – DSM

+0

아, 그래, 0.888 좋을 것입니다. 수술을 보여주기위한 것입니다. 혼란을 드려 죄송합니다. – msunbot

답변

13

뭔가 작동합니다 : 나는 그것을 너무 1.0에 의해 df을 곱한

>>> from pandas import DataFrame 
>>> 
>>> df = DataFrame({"A": [8,9,5,4], "B": [3,4,4,8], "C": [5,0,3,5], "D": [8,4,8,1]}) 
>>> df.max() 
A 9 
B 8 
C 5 
D 8 
>>> (df * 1.0)/df.max() 
      A  B C  D 
0 0.888889 0.375 1.0 1.000 
1 1.000000 0.500 0.0 0.500 
2 0.555556 0.500 0.6 1.000 
3 0.444444 1.000 1.0 0.125 

주 구성되지 않았다. int이 더 이상 (.astype(float)도 작업했을 것입니다) 정수 나누기 및 결과 데이터 프레임 0과 1로 가득 차는 것을 피하십시오.