我的熊猫数据框df如下所示:
a b
thisisastring 5
anotherstring 6
thirdstring 7
我想根据b列中的数字从a列的字符串左侧删除字符。所以我尝试了:
df["a"] = d["a"].str[df["b"]:]
但这将导致:
a b
NaN 5
NaN 6
NaN 7
代替:
a b
sastring 5
rstring 6
ring 7
有帮助吗?预先感谢!
答案 0 :(得分:6)
将zip
与字符串切片一起使用
df.a=[x[y:] for x,y in zip(df.a,df.b)]
df
Out[584]:
a b
0 sastring 5
1 rstring 6
2 ring 7
答案 1 :(得分:4)
您可以使用apply
来进行逐行应用:
df.apply(lambda x: x.a[x.b:],axis=1)
0 sastring
1 rstring
2 ring
dtype: object