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

问题描述 投票:1回答:2

我正在尝试基于分隔符在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似乎不直观。

获取拆分字符串列表后,如何选择我需要的单个项目?

python pandas
2个回答
1
投票

我认为需要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

-1
投票

使用expand=True

df_client["Subject"].str.split('-', expand=True)[2]
© www.soinside.com 2019 - 2024. All rights reserved.