簡體   English   中英

格式化最大的輸出熊貓

[英]Formatting nlargest output pandas

我是熊貓的新手,所以對它的工作方式有點不熟悉。 我已經處理了一些數據並獲得了想要的結果,但是,我在弄清楚如何使用打印來格式化輸出格式時遇到了麻煩。 例如,我只想顯示某些數據行,並將某些值放在()中。

通過這樣做:

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

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

這是我通過執行print(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的格式顯示它們,如下所示)?

您可以通過以下方式創建新列:

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"

我的教授幫助我弄清楚了這一點。 我真正需要的是知道如何遍歷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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM