首页 > 解决方案 > 有条件地获取 DataFrame 列中的最后一个字符串元素

问题描述

假设我有以下简单的数据框:

df_data=pd.DataFrame({'name':['ABC','ABC XYZ']})

要获得我应用的最后一个元素:

df_end= pd.DataFrame(df_data.name.str.split().str.get(-1), columns=['name'])

结果是ABCname当长度小于 2时,我想得到 None 。我尝试了以下方法,但我没有做对:

df_end['name'] = df_data.name.str.split().apply(lambda x: x[-1] if len(x)>1)

我不应该ABC作为 的最后一个元素ABC,但我应该XYZ进入ABC XYZ

标签: pythonpandasdataframeapply

解决方案


我想你可以试试:

df_data['name'].str.extract('\s(\S+)$')

输出:

     0
0  NaN
1  XYZ

推荐阅读