python - 有条件地获取 DataFrame 列中的最后一个字符串元素
问题描述
假设我有以下简单的数据框:
df_data=pd.DataFrame({'name':['ABC','ABC XYZ']})
要获得我应用的最后一个元素:
df_end= pd.DataFrame(df_data.name.str.split().str.get(-1), columns=['name'])
结果是ABC
。name
当长度小于 2时,我想得到 None 。我尝试了以下方法,但我没有做对:
df_end['name'] = df_data.name.str.split().apply(lambda x: x[-1] if len(x)>1)
我不应该ABC
作为 的最后一个元素ABC
,但我应该XYZ
进入ABC XYZ
解决方案
我想你可以试试:
df_data['name'].str.extract('\s(\S+)$')
输出:
0
0 NaN
1 XYZ
推荐阅读
- javascript - 来自现有 div 的 javascript 数组
- shell - 如何在基于 unix 的命令行上检查 tail 到多个文件的输出字符串是否相等?
- python - 以 10 为底的 int() 的 sqlalchemy 无效文字
- python - Python从特定角色获取所有成员列表
- java - 使用 Regex 从进程命令行捕获 Java 程序名称/包名称
- opencv - 如何从 opencv 中支持的网络摄像头获得超过 30FPS?
- c# - 当我更改 asp.net 页面的前景色时,它会影响其他页面的前景色
- python - 读取文件夹中存在的所有文件时出错
- database - 火花流能够为每个批次将数据存储在数据库中吗?
- c - Print the occurences of digit 4. - CodeChef