我的df:
df = pd.DataFrame({'A':['elisabeth','adamms','jorhgen'], 'B':[2,2,3]})
我需要删除A列中字符串的结尾,在B列中有多少个我应该删除的字母。 通常我会使用以下代码:
df['A']=df['A'].str[:-2] # to delete for first row , two letters from right side.
预期结果:
A B
0 elisabe 2
1 adam 2
2 jorh 3
答案 0 :(得分:1)
对zip
使用列表理解:
df['A']= [a[:-b] for a, b in zip(df.A, df.B)]
df['A'] = df.apply(lambda x: x.A[:-x.B], axis=1)
print (df)
A B
0 elisabe 2
1 adam 2
2 jorh 3
答案 1 :(得分:1)
不是最好的选择:
>>> it = iter(df['A'].tolist())
>>> df['A'] = [next(it)[:-i] for i in df['B']]
>>> df
A B
0 elisabe 2
1 adam 2
2 jorh 3
>>>