为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中分割字符串并将其分配给新列

如何在Python中分割字符串并将其分配给新列

蛊毒传说 2023-10-06 18:35:00
我在一列中有这个值10-X-002,我只想提取X-002到新列中。到目前为止我尝试过的是:mask = df["eq_id"].str.count('-').gt(0)splitted = df["eq_id"].str.split("-")df.loc[mask, "eg_number"] = splitted[mask].str[-1]但脚本结果只有002在新列中,我应该怎么做才能在新列中获取X-002值?谢谢。
查看完整描述

4 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

将第一个 + 和“-”与最后一个元素相加


mask = df["eq_id"].str.count('-').gt(0)

splitted = df["eq_id"].str.split("-")

df.loc[mask, "eg_number"] = splitted[mask].str[1]+'-' +splitted[mask].str[-1]

https://img1.sycdn.imooc.com//651fe30b00011d1306540519.jpg

查看完整回答
反对 回复 2023-10-06
?
温温酱

TA贡献1752条经验 获得超4个赞

最简单的事情是只更改代码中的一行,这完全没问题。

改变这个splitted = df["eq_id"].str.split("-")

进入这个splitted = df["eq_id"].str.split("-", 1)

这意味着您只需要从'-'左侧开始进行一次分割。

保持其余代码不变,它应该可以完成工作


查看完整回答
反对 回复 2023-10-06
?
holdtom

TA贡献1805条经验 获得超10个赞

尝试

df["eq_id"].replace('10-','')


查看完整回答
反对 回复 2023-10-06
?
阿晨1998

TA贡献2037条经验 获得超6个赞

如果您知道字符串的索引位置,那么您可以这样做:

mask = df["eq_id"].split('-')[1]+'-'+df["eq_id"].split('-')[-1]
df.loc[mask, "eg_number"] = mask

用“-”号将它们拆分并重新组合回来,然后分配回该特定列


查看完整回答
反对 回复 2023-10-06
  • 4 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信