2016-11-03 2 views
0

Я новичок в пандах, и я немного не знаком с тем, как это работает. Я обработал некоторые данные и получил результаты, которые я хочу, однако мне трудно понять, как форматировать вывод с печатью. Например, я хочу отображать определенные строки данных, а также добавлять определенные значения в().Форматирование nlargest output pandas

делать это:

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" 

Когда я пытался использовать высоких людей как словарь, и это дало мне ошибку. Поэтому я не совсем уверен, что делать. Кроме того, это способ для меня иметь возможность манипулировать значениями высоты, чтобы я мог их переформатировать (иначе они отображают их в формате 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

что еще более важно, мне нужно, чтобы выяснить, как печатать только определенные столбцы, а не весь dataframe - как бы я это сделать – Sveinn

+0

@mildlyillogical, вы можете обеспечить [Minimal, полный, и проверяемый пример] (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)) 
Смежные вопросы