如何在熊猫中找到确切的子字符串?

时间:2019-11-17 05:50:39

标签: python pandas dataframe substring contains

我试图从主字符串(从主数据帧)中找到子字符串(从一个数据帧中获取),但是我没有得到想要的结果。以下是文件的详细信息和输出。

第一个数据帧

handleid
49483
51466
83821
94159
105068

我想从主数据框( id 列)中搜索 49483 。结果如下。

id                collection_id     dc_language_iso
dli_ndli/49483    NaN               English
dli_ndli/494830   NaN               Kannada
dli_ndli/494831   NaN               Kannada
dli_ndli/494832   NaN               Kannada 

以上结果表明我得到了4983、49830、49831、49832。但是我只想要第一行,即dli_ndli/49483 NaN English。我不希望将具有49830、49831和49832值的行作为子字符串。

我正在使用熊猫中可用的 包含 功能。

2 个答案:

答案 0 :(得分:0)

这应该有效:

 newdf[newdf['id'].str.contains('49483$', regex=True)] 

#Out[216]: 
#               id  collection_id dc_language_iso
#0  dli_ndli/49483            NaN         English

答案 1 :(得分:0)

假设一切都是字符串...您可以这样做:

main_df[main_df['id'].str.split('/',expand=True)[1] == df1['handleid'][0]]

这里main_df是主要数据帧,df1是第一个数据帧,df1['handleid'][0]'49483' ...您可以根据需要更改代码以对df1中的任何/所有值执行