我想使用矢量化在Pandas 数据框中创建一个列,该列检索字符串的第二个/最后一个部分,从列中的每一行中检索拆分为‘_’的字符串.我试过这个代码:

df = pd.DataFrame()

df['Var1'] = ["test1_test2","test3_test4"]
df['Var2'] = [[df['Var1'].str.split('_')][0]][0]
df

           Var1  Var2
0   test1_test2 test3
1   test3_test4 test4

这显然是不正确的,因为我应该在Var2列的第0行和第1行中分别获得Test2和Test4.

推荐答案

使用.str.split('_')方法和.str[-1]来检索列中每个字符串的第二个/最后一个部分.

以下是更新后的代码:

import pandas as pd

df = pd.DataFrame()

df['Var1'] = ["test1_test2", "test3_test4"]
df['Var2'] = df['Var1'].str.split('_').str[-1]

print(df)

输出:

          Var1   Var2
0  test1_test2  test2
1  test3_test4  test4

在上面的代码中,df['Var1'].str.split('_')用‘_’分隔符拆分‘var1’列中的每个字符串,而.str[-1]为每一行 Select 拆分字符串的最后部分.

Python相关问答推荐

Python:在类对象内的字典中更改所有键的索引,而不是仅更改一个键

Pandas 在最近的日期合并,考虑到破产

PywinAuto在Windows 11上引发了Memory错误,但在Windows 10上未引发

为什么这个带有List输入的简单numba函数这么慢

C#使用程序从Python中执行Exec文件

我对我应该做什么以及我如何做感到困惑'

python中的解释会在后台调用函数吗?

Python列表不会在条件while循环中正确随机化'

在Python中使用if else或使用regex将二进制数据如111转换为001""

在单次扫描中创建列表

Python—转换日期:价目表到新行

合并与拼接并举

基于Scipy插值法的三次样条系数

Python类型提示:对于一个可以迭代的变量,我应该使用什么?

应用指定的规则构建数组

如何使用加速广播主进程张量?

如何在Python中从html页面中提取html链接?

如何在PYTHON中向单元测试S Side_Effect发送额外参数?

Scipy.linprog的可行性有问题吗?(A_ub@x0<;=b_ub).all()为True-但是-linprog(np.zeros_like(X0),A_ub=A_ub,b_ub=b_ub)不可行

如何在Polars中处理用户自定义函数的多行结果?