猿问

根据pandas中另一列的长度获取子字符串

我有一个数据框,


       plan_identifier wellthie_issuer_identifier

0  UNM99901AL0000001-DEN                   UNM99902

1  UNM99902AK0000001-DEN                   UNM99902

2  UNM99904AZ0000001-DEN                   UNM99904

3  UNM99905AR0000001-DEN                   UNM99905

4  UNM99906CA0000001-DEN                   UNM99906

5  UNM99908CO0000001-DEN                   UNM99909

6  UNM99909CT0000001-DEN                   UNM99909

我需要检查plan_identifier得到长度后考虑的子串wellthie_issuer_identifier是否相等?


Ex-length ofUNM99902是 8 ,所以我的plan_identifier子串 = UNM99901。现在这应该返回给我 False。


所以,只要这不相等,我就应该得到 False。


我的输出应该是:-


FALSE

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

我试过类似下面的东西-


print(~(df['plan_identifier'].str[:(df['wellthie_issuer_identifier'].astype(str).str.len())] != df['wellthie_issuer_identifier']))

如何实现这一目标?我们可以使用apply()吗?


素胚勾勒不出你
浏览 238回答 2
2回答

有只小跳蛙

使用defchararray.find来自numpys1=df.plan_identifier.values.astype(str)s2=df.wellthie_issuer_identifier.values.astype(str)    ~np.core.defchararray.find(s1,s2).astype(bool) Out[64]: array([False,  True,  True,  True,  True, False,  True])

互换的青春

Pandas 中的字符串方法通常很慢。您可以改用列表理解。IUC:>>> [i in p for p,i in zip(df['plan_identifier'],df['wellthie_issuer_identifier'])][False, True, True, True, True, False, True]# or assign to new column:df['new_column'] = [i in p for p,i in zip(df['plan_identifier'],df['wellthie_issuer_identifier'])]>>> df         plan_identifier wellthie_issuer_identifier  new_column0  UNM99901AL0000001-DEN                   UNM99902       False1  UNM99902AK0000001-DEN                   UNM99902        True2  UNM99904AZ0000001-DEN                   UNM99904        True3  UNM99905AR0000001-DEN                   UNM99905        True4  UNM99906CA0000001-DEN                   UNM99906        True5  UNM99908CO0000001-DEN                   UNM99909       False6  UNM99909CT0000001-DEN                   UNM99909        True[编辑]在评论中,您说您只对字符串的开头感兴趣。在这种情况下,您可以startswith改用:[p.startswith(i) for p,i in zip(df['plan_identifier'],df['wellthie_issuer_identifier'])]
随时随地看视频慕课网APP

相关分类

Python
我要回答