我想逐个打印每个名字及其工作时间
熊猫数据帧:
df = pd.DataFrame({'NAME': ['Joesph Morse', 'Katie Plotkin', 'Denny Heaps', 'Evelia Chesson', 'Drew Hassett', 'Robt Buckles', 'Suzy Lafler'], 'CITY': ["New York", "Boston", "Los Angeles", "Chicago", "Atlanta",
"Salt Lake City", "Dallas"], 'WORK HOURS': [3, 7, 0, 6, 10, 1, 9]}
)
目前,我的目标是"Work Hours"
列,nlargest可以过滤该行中最前面的大数字,但它不能帮助我获得员工的姓名和他们的工作时间。我怎么也能得到他们的名字?
row = df['WORK HOURS']
leading_workers = row.nlargest(5, 'all')
print('Top First worker',leading_workers.values[0]) # user_1
print('Top Second worker',leading_workers.values[1]) # user_2
print('Top Third worker',leading_workers.values[2]) # user_3
print('Top Forth worker',leading_workers.values[3]) # user_4
print('Top Fifth worker',leading_workers.values[4]) # user_5
将DataFrame.nlargest
与指定的列名称一起用于测试,并为leading_workers
:选择NAME
leading_workers = df.nlargest(5, 'WORK HOURS', 'all')['NAME']
print (leading_workers)
4 Drew Hassett
6 Suzy Lafler
1 Katie Plotkin
3 Evelia Chesson
0 Joesph Morse
Name: NAME, dtype: object
for w in leading_workers:
print (w)
Drew Hassett
Suzy Lafler
Katie Plotkin
Evelia Chesson
Joesph Morse
import pandas as pd
df = pd.DataFrame({'NAME': ['Joesph Morse', 'Katie Plotkin', 'Denny Heaps',
'Evelia Chesson', 'Drew Hassett', 'Robt Buckles', 'Suzy Lafler'],
'CITY': ["New York", "Boston", "Los Angeles", "Chicago", "Atlanta",
"Salt Lake City", "Dallas"],
'WORK HOURS': [3, 7, 0, 6, 10, 1, 9]}
)
df.sort_values(by='WORK HOURS',ascending=False,inplace=True)
是另一种方法,用输出
NAME CITY WORK HOURS
4 Drew Hassett Atlanta 10
6 Suzy Lafler Dallas 9
1 Katie Plotkin Boston 7
3 Evelia Chesson Chicago 6
0 Joesph Morse New York 3
5 Robt Buckles Salt Lake City 1
2 Denny Heaps Los Angeles 0
如果你想要前5行
df.head(5)
NAME CITY WORK HOURS
4 Drew Hassett Atlanta 10
6 Suzy Lafler Dallas 9
1 Katie Plotkin Boston 7
3 Evelia Chesson Chicago 6
0 Joesph Morse New York 3