[英]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.