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

5

你好,是否有一种方法可以根据另一列获取一个列的子字符串?

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

What i would expect is something like:

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

be
bre
ber

结果是基于数字的名称子字符串。

我知道如果我真的想的话,可以基于itertuples函数创建一个列表,但这似乎不太对,并且我总是尝试创建一个向量化的方法。

感谢任何反馈。

1个回答

9

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接