Pandas 按列的索引列表对行进行切片

Pandas slice row by index list for column

我有这个 pandas 数据框:

                           county reporting_code
0           other locality rate %           code
1           New York State only 4           0021
2                        Albany 8           0181
3                   Allegany 81/2           0221

我希望它是:

                           county reporting_code  rate
0           other locality rate %           code   %
1           New York State only 4           0021   4
2                        Albany 8           0181   8
3                   Allegany 81/2           0221   81/2

我需要将县列中的数字提取到新列中并将它们转换为小数。我得到县列中最后一个 space 的索引:

indx = (df0['county'].str.rindex(' '))

索引returns:

0     19
1     19
2      6
3      8

然后我尝试:

df0['rate'] = df0['county'].str.slice(start=indx)

df0 然后 returns:

                           county reporting_code  rate
0           other locality rate %           code   NaN
1           New York State only 4           0021   NaN
2                        Albany 8           0181   NaN
3                   Allegany 81/2           0221   NaN

我认为 pandas slice 尝试对列表中的每一行应用相同的每个索引。任何帮助表示赞赏。谢谢。

你可以试试rsplit

df0['rate'] = df0['county'].str.rsplit(' ', n = 1).str[-1]