我有一个数据框

       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子字符串是否相等?

UNM99902的扩展名是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()吗?

最佳答案

使用defchararray.find中的numpy

s1=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])

关于python - 根据 Pandas 中另一列的长度获取子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53747052/

10-09 14:02