我们有一列如下所示
name salary-range
A $53K-$99K
B $41K-$78K
c $97K-$129K
D $29K-$38K
我们需要找到薪水最高的名字
薪水范围的dtype是object,是否有任何简单的方法将列转换为int64并检查薪水最高的工资?
答案 0 :(得分:1)
使用Series.str.extractall
获取数字,转换为整数:
s = (df.set_index('name')['salary-range']
.str.extractall('(\d+)')[0]
.astype(int)
.reset_index(level=1, drop=True))
print (s)
name
A 53
A 99
B 41
B 78
c 97
c 129
D 29
D 38
Name: 0, dtype: int32
最后以Series.idxmax
的最大值获取名称:
a = s.idxmax()
print (a)
c
答案 1 :(得分:0)
您可以这样做:
In [972]: df.sort_values('salary-range').tail(1)['name']
Out[972]:
2 c
Name: name, dtype: object