2016-11-03 2 views
0

팬더를 처음 사용하니 어떻게 작동하는지 익숙하지 않습니다. 일부 데이터를 처리하고 원하는 결과를 얻었지만 인쇄물을 출력 형식을 지정하는 방법을 알아 내지 못했습니다. 예를 들어, 특정 데이터 행을 표시하고()에 특정 값을 넣기를 원합니다. 이 일에서nlargest 출력 팬더 포맷하기

:

df = pd.read_csv('data_file.csv') 

tallmen = df[df['gender'] == 'M'].nlargest(2, 'height') 

이다 내가 인쇄를 수행하여 얻을 출력 (tallmen) :

id name   gender state  height 
6 5  Smith, Bob M  New York 73.5 
2 7  Wright, Frank M  Kentucky 75.2 

그리고 이것은 출력이 내가 원하는됩니다 :

Smith, Bob (M) 6' 1.5" 
Wright, Frank (M) 6' 3.2" 

내가 사전으로 tallmen을 사용하려고 할 때, 그리고 그것은 나에게 오류를 줬다. 그래서 나는 무엇을 해야할지 잘 모릅니다. 또한 높이 값을 조작하여 형식을 다시 지정할 수있는 방법이 있습니다 (일명 ft 형식으로 표시).

답변

0

새 열이 방법을 만들 수 있습니다

In [207]: df 
Out[207]: 
    id   name gender  state height 
6 5  Smith, Bob  M New York 73.5 
2 7 Wright, Frank  M Kentucky 75.2 

In [208]: df['new'] = (
    ...:  df.name + ' (' + df.gender + ') ' + 
    ...:  (df.height // 12).astype(int).astype(str) + 
    ...:   "' " + (df.height % 12).astype(str) + '"') 
    ...: 

In [209]: df 
Out[209]: 
    id   name gender  state height      new 
6 5  Smith, Bob  M New York 73.5  Smith, Bob (M) 6' 1.5" 
2 7 Wright, Frank  M Kentucky 75.2 Wright, Frank (M) 6' 3.2" 
+0

더 중요한 것은, I는 오히려 전체 dataframe보다 특정 열을 인쇄하는 방법을 알아낼 필요가 - 내가 얼마나 – Sveinn

+0

@mildlyillogical, 당신은 [최소, 전체 제공 할 수 및 확인 가능한 예제] (http://stackoverflow.com/help/mcve)? – MaxU

0

내 교수 나이 알아낼 수있었습니다. 실제로 필요한 것은 DataFrame의 값을 반복하는 방법을 아는 것입니다. 내 솔루션은 다음과 같습니다

df = pd.read_csv('data_file.csv') 

tallmen = df[df['gender'] == 'M'].nlargest(2, 'height')  

for i, val in tallmen.iterrows(): 
    feet = val['height']//12 
    inches = val['height']%12 

    print("%s (%s) %i'%i"" % (val['name'], val['gender'], 
            feet, inches))