金额范围的熊猫列

时间:2020-09-28 08:42:23

标签: pandas

我们有一列如下所示

name  salary-range
 A     $53K-$99K
 B     $41K-$78K
 c     $97K-$129K
 D     $29K-$38K

我们需要找到薪水最高的名字

薪水范围的dtype是object,是否有任何简单的方法将列转换为int64并检查薪水最高的工资?

2 个答案:

答案 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