使用第二列Python中的值从pandas列中删除特定数量的字母

时间:2019-06-25 11:32:58

标签: python pandas

我的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

2 个答案:

答案 0 :(得分:1)

zip使用列表理解:

df['A']= [a[:-b] for a, b in zip(df.A, df.B)]

DataFrame.apply

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
>>>