要获取与另一列的pandas DataFrame(df)列中的子字符串匹配的字符串,可以使用str.contains()
方法结合布尔索引来实现。
首先,假设我们有一个名为df
的pandas DataFrame,其中包含两列:column1
和column2
。我们想要获取column1
中与column2
中子字符串匹配的字符串。
以下是实现的步骤:
import pandas as pd
df
:data = {'column1': ['apple', 'banana', 'cat', 'dog', 'elephant'],
'column2': ['app', 'na', 'ca', 'do', 'ant']}
df = pd.DataFrame(data)
str.contains()
方法和布尔索引来获取匹配的字符串:matches = df[df['column1'].str.contains('|'.join(df['column2']))]
在这个例子中,str.contains()
方法用于检查column1
中的每个字符串是否包含column2
中的任何一个子字符串。'|'.join(df['column2'])
用于将column2
中的所有子字符串连接成一个正则表达式模式,以便在str.contains()
中使用。最后,通过将布尔索引应用于DataFrame df
,我们可以获取与column2
中的子字符串匹配的字符串。
print(matches)
完整的代码如下所示:
import pandas as pd
data = {'column1': ['apple', 'banana', 'cat', 'dog', 'elephant'],
'column2': ['app', 'na', 'ca', 'do', 'ant']}
df = pd.DataFrame(data)
matches = df[df['column1'].str.contains('|'.join(df['column2']))]
print(matches)
这将输出以下结果:
column1 column2
0 apple app
1 banana na
3 dog do
4 elephant ant
对于以上的问题,腾讯云没有提供特定的产品或链接地址,因此无法提供相关推荐。
领取专属 10元无门槛券
手把手带您无忧上云