根据pandas数据框中的另一列获取子字符串

Ber*_*rdL 4 python dataframe pandas

您有没有办法根据另一列获取列的子字符串?

import pandas as pd
x = pd.DataFrame({'name':['bernard','brenden','bern'],'digit':[2,3,3]})
x

     digit  name
0   2   bernard
1   3   brenden
2   3   bern
Run Code Online (Sandbox Code Playgroud)

我期望的是:

for row in x.itertuples():
    print row[2][:row[1]]

be
bre
ber
Run Code Online (Sandbox Code Playgroud)

其中结果是基于数字的名称子字符串.

我知道如果我真的想要我可以创建一个基于itertuples函数的列表,但似乎不对,而且,我总是尝试创建一个矢量化方法.

感谢任何反馈.

EdC*_*ica 6

使用applyaxis=1进行行了lambda,所以你的切片访问的每一列:

In [68]:
x = pd.DataFrame({'name':['bernard','brenden','bern'],'digit':[2,3,3]})
x.apply(lambda x: x['name'][:x['digit']], axis=1)

Out[68]:
0     be
1    bre
2    ber
dtype: object
Run Code Online (Sandbox Code Playgroud)