这应该是相当简单,但我无法实现它
我有一个数据帧df1,有一列“name_str”。示例如下:
name_str
0 alp:ha
1 bra:vo
2 charl:ie
我必须创建另一个列,该列包含-比如说5个字符-在冒号(:)之后开始。我编写了以下代码:
import pandas as pd
data = {'name_str':["alp:ha", "bra:vo", "charl:ie"]}
#indx = ["name_1",]
df1 = pd.DataFrame(data=data)
n= df1['name_str'].str.find(":")+1
df1['slize'] = df1['name_str'].str.slice(n,2)
print(df1)
但产出令人失望:纳安
name_str slize
0 alp:ha NaN
1 bra:vo NaN
2 charl:ie NaN
输出应该是:
name_str slize
0 alp:ha ha
1 bra:vo vo
2 charl:ie ie
有人能帮忙吗?谢谢
您可以使用^{} 使用以下正则表达式提取冒号后面的所有内容:
:(.*)
根据更新的问题进行编辑
如果要在冒号后提取最多5个字符,则可以使用以下修改:
相关问题 更多 >
编程相关推荐