我正在尝试根据分隔符在 Pandas 数据框中拆分一列,并获取最后一部分。
pandas 有 str.rsplit 和 str.rpartition 函数。
如果我尝试:
df_client["Subject"].str.rsplit("-", 1)
Run Code Online (Sandbox Code Playgroud)
我得到
0 [活动 - 位置,用户代码]
1 [活动 - 位置,用户代码]
如果我尝试
df_client["Subject"].str.rpartition("-")
Run Code Online (Sandbox Code Playgroud)
我得到
Run Code Online (Sandbox Code Playgroud)0 1 20 活动 - 位置 - 用户代码
1 活动 - 位置 - 用户代码
如果我做
df_client["Subject"].str.rpartition("-")[2]
Run Code Online (Sandbox Code Playgroud)
我得到
0 用户代码
这就是我想要的。
对我来说, str.rsplit 似乎不直观。
获得拆分字符串的列表后,我将如何选择我需要的单个项目?
我认为需要通过 str与 iterables 一起工作来建立索引:
#select last lists
df_client["Subject"].str.rsplit("-", 1).str[-1]
#select second lists
df_client["Subject"].str.rsplit("-", 1).str[1]
Run Code Online (Sandbox Code Playgroud)
如果性能很重要,请使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4110 次 |
| 最近记录: |