我正在尝试根据分隔符在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似乎不直观。
获得分割字符串的列表后,我该如何选择所需的单个项目?
答案 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]