我有一個(gè)數(shù)據(jù)框:a = {'TXI': ['TXI|GS|-4.08|ABCD', 'TXI|TX|0', 'TXI|SP|7.06|ABCD']}a = pd.DataFrame (a, columns = ['TXI']) 我試圖刪除基于開頭的最后 5 個(gè)字符,以獲得像 b 這樣的結(jié)果:b = {'TXI': ['TXI|GS|-4.08', 'TXI|TX|0', 'TXI|SP|7.06']}b = pd.DataFrame (b, columns = ['TXI'])我在下面嘗試的代碼不會(huì)更新數(shù)據(jù)框。哪里錯(cuò)了?for i in a.TXI: if not i.startswith('TXI|TX'): i = i[:-5]
2 回答

滄海一幻覺
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以通過分配和應(yīng)用來做到這一點(diǎn):
a = a.assign(TXI = lambda x: x['TXI'].apply(lambda s: s[:-5] if s.startswith('TXI|TX') else s ))
結(jié)果將是:
TXI
0 TXI|GS|-4.08|ABCD
1 TXI
2 TXI|SP|7.06|ABCD

HUH函數(shù)
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
請使用where
函數(shù)
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
添加回答
舉報(bào)
0/150
提交
取消