我是熊猫新手,所以我对它的运作方式有点不熟悉。我已经处理了一些数据并获得了我想要的结果,但是,我无法弄清楚如何使用print格式化输出。例如,我只想显示某些数据行,以及将某些值放入()。
从这样做:
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 :(得分: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"
答案 1 :(得分: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))