我有一个数据框为:
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]
答案 0 :(得分:0)
您可以通过分配并应用来实现:
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
答案 1 :(得分:0)