我有一个 pandas 数据框,在一列中我有一个字符串,其中单词由“_”分隔,我想提取该字符串的最后一个元素(这是一个数字)并用它创建一个新列。 我尝试了以下
df = pd.DataFrame({'strings':['some_string_25','a_different_one_13','and_a_last_one_40']})
df.assign(number = lambda x: x.strings.str.split('_')[0])
但它在我的最后一个专栏中给了我这个
number
some
string
25
但我想得到这个
number
25
13
40
我该怎么做?
最佳答案
使用Series.str.split
通过索引或使用 Series.str.extract
来拆分和选择列表的最后一个值按字符串的最后一个整数 - (\d+)
用于匹配 int,$
用于字符串结尾:
df['last'] = df['strings'].str.split('_').str[-1]
df['last1'] = df['strings'].str.extract('(\d+)$')
print (df)
strings last last1
0 some_string_25 25 25
1 a_different_one_13 13 13
2 and_a_last_one_40 40 40
可能会在更改的数据中看到差异:
df = pd.DataFrame({'strings':['some_string_25','a_different_one_13','and_a_last_one_40',
'aaaa', 'sss58']})
df['last'] = df['strings'].str.split('_').str[-1]
df['last1'] = df['strings'].str.extract('(\d+)$')
print (df)
strings last last1
0 some_string_25 25 25
1 a_different_one_13 13 13
2 and_a_last_one_40 40 40
3 aaaa aaaa NaN
4 sss58 sss58 58
关于python - Pandas 数据框拆分并获取列表的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64463816/
相关文章:
vim - 如何在没有重新映射的情况下仅使用一个命令在 Neovim 的新选项卡中打开终端?
java - 首次安装应用程序时无法解析 android 11 中的 com.android.cam
assembly - 如何将浮点常量移动到 FP 寄存器中?
ios - 从初始化器返回而不初始化所有存储的属性 - SwiftUI 绑定(bind)错误
javascript - Angular 子组件无法识别输入更改
c# - 如何在 ASP Core 的静态类中使用 "IWebHostEnvironment"