Pandas的弦包容

2024-07-04 08:36:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图生成df中company1包含在company2中的所有行。我是这样做的:

df1=df[['company1','company2']][(df.apply(lambda x: x['company1'] in x['company2'], axis=1) == True)]

当我运行上面的代码行时,它还显示与“Southern”匹配的“Southern”。同时,“南”与“南行”相匹配。我想把这些案子都处理掉。Company1只能包含在Company2的开头。而且,company1不应该是company2中某个单词的一部分,比如“South”(company1)与“Southern”(company2)匹配。我应该如何修改我的代码来完成以上两个需求?你知道吗


Tags: lambda代码intruedfdf1apply行时
1条回答
网友
1楼 · 发布于 2024-07-04 08:36:08

我想你需要:

df = pd.DataFrame({'company1': {0: 'South', 1: 'South', 2:'South'}, 
                   'company2': {0: 'Southern', 1: 'Route South', 2: 'South Route'}})

print (df)
  company1     company2
0    South     Southern
1    South  Route South
2    South  South Route

df1=df[df['company2'].str.contains("|".join('^' + df['company1'] + ' '))]
print (df1)
  company1     company2
2    South  South Route

相关问题 更多 >

    热门问题