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]
我有这个 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]