熊猫:最后一次出现时分割字符串

时间:2018-09-02 16:38:30

标签: python pandas

我正在尝试根据分隔符在pandas数据框中拆分一列,并获取最后一部分。

pandas具有str.rsplit和str.rpartition函数。

如果我尝试:

df_client["Subject"].str.rsplit("-", 1)

我知道

  

0 [活动-位置,用户代码]
  1 [活动-位置,用户代码]

如果我尝试

df_client["Subject"].str.rpartition("-")

我知道

      0            1      2   
     

0活动-位置-用户代码
  1个活动-位置-用户代码

如果我这样做

df_client["Subject"].str.rpartition("-")[2]

我知道

  

0个用户代码

这就是我想要的。

对我来说,str.rsplit似乎不直观。

获得分割字符串的列表后,我该如何选择所需的单个项目?

2 个答案:

答案 0 :(得分:1)

我认为需要indexing by str处理可迭代对象:

#select last lists 
df_client["Subject"].str.rsplit("-", 1).str[-1]
#select second lists
df_client["Subject"].str.rsplit("-", 1).str[1]

如果性能很重要,请使用list comprehension

df_client['last_col'] = [x.rsplit("-", 1)[-1] for x in df_client["Subject"]]
print (df_client)
                      Subject  last_col
0  Activity-Location-UserCode  UserCode
1  Activity-Location-UserCode  UserCode

答案 1 :(得分:-1)

使用expand=True

df_client["Subject"].str.split('-', expand=True)[2]