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

如何根据开头更新 pandas 单元格值

如何根据开头更新 pandas 单元格值

qq_笑_17 2023-10-26 10:26:30
我有一个数据框:a = {'TXI':  ['TXI|GS|-4.08|ABCD', 'TXI|TX|0', 'TXI|SP|7.06|ABCD']}a = pd.DataFrame (a, columns = ['TXI']) 我试图删除基于开头的最后 5 个字符,以获得像 b 这样的结果:b = {'TXI':  ['TXI|GS|-4.08', 'TXI|TX|0', 'TXI|SP|7.06']}b = pd.DataFrame (b, columns = ['TXI'])我在下面尝试的代码不会更新数据框。哪里错了?for i in a.TXI:    if not i.startswith('TXI|TX'):        i = i[:-5]
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您可以通过分配和应用来做到这一点:


a = a.assign(TXI = lambda x: x['TXI'].apply(lambda s: s[:-5] if s.startswith('TXI|TX') else s ))

结果将是:


                 TXI

0  TXI|GS|-4.08|ABCD

1                TXI

2   TXI|SP|7.06|ABCD


查看完整回答
反对 回复 2023-10-26
?
HUH函数

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

请使用where函数

https://img1.sycdn.imooc.com/6539ce7c0001c2be06520062.jpg

a.TXI.where(a.TXI.str.startswith('TXI|TX'), a.TXI.str[:-5])


0    TXI|GS|-4.08

1        TXI|TX|0

2     TXI|SP|7.06


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

添加回答

举报

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