我正在尝试基于分隔符在pandas数据帧中拆分列,并获取最后一节。
pandas有str.rsplit和str.rpartition函数。
如果我尝试:
df_client["Subject"].str.rsplit("-", 1)
我明白了
0 [活动 - 位置,UserCode] 1 [活动 - 位置,UserCode]
如果我试试
df_client["Subject"].str.rpartition("-")
我明白了
0 1 2
0活动 - 位置 - UserCode 1活动 - 位置 - UserCode
如果我做
df_client["Subject"].str.rpartition("-")[2]
我明白了
0 UserCode
这就是我想要的。
对我来说,str.rsplit似乎不直观。
获取拆分字符串列表后,如何选择我需要的单个项目?
我认为需要indexing by str使用iterables:
#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
使用expand=True
:
df_client["Subject"].str.split('-', expand=True)[2]