【问题标题】:Getting substring based on another column in a pandas dataframe根据熊猫数据框中的另一列获取子字符串
【发布时间】:2016-09-29 10:28:57
【问题描述】:

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

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

我希望是这样的:

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

be
bre
ber

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

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

感谢任何反馈。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-09
      • 2021-11-15
      • 2013-04-14
      • 1970-01-01
      • 2018-04-26
      • 2021-10-07
      • 2019-03-04
      • 2014-12-27
      相关资源
      最近更新 更多