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

我有一个数据框:


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]


qq_笑_17
浏览 79回答 2
2回答

沧海一幻觉

您可以通过分配和应用来做到这一点:a = a.assign(TXI = lambda x: x['TXI'].apply(lambda s: s[:-5] if s.startswith('TXI|TX') else s ))结果将是:                 TXI0  TXI|GS|-4.08|ABCD1                TXI2   TXI|SP|7.06|ABCD

HUH函数

请使用where函数a.TXI.where(a.TXI.str.startswith('TXI|TX'), a.TXI.str[:-5])0    TXI|GS|-4.081        TXI|TX|02     TXI|SP|7.06
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python