问题:我必须在一组序列中循环,以确定序列值中是否有任何一个包含子集字符串“Hi”?你知道吗
说明:这里有两个Dataframes Dataframe1和Dataframe2,我试图找出Dataframe2的“源代码”是否包含Dataframe1的字符串,并在Dataframe3中设置结果。你知道吗
import pandas as pd
import numpy as np
import openpyxl
data = {'Fields' : ['Hi', 'How', 'Are', 'You']}
Dataframe1 = pd.DataFrame(data)
data2 = {'SourceCode' : ['LMNOHiPQR', 'LMNOHowPQR'']}
Dataframe2 = pd.DataFrame(data2)
data3 = {'dummy' : []}
Dataframe3 = pd.DataFrame(data3)
for i in range(0,len(Dataframe1)):
current_string=Dataframe1['Fields'][i]
for j in range(0,len(Dataframe2)):
if Dataframe2['SourceCode'].iloc[j].contains(current_field):
Dataframe3['dummy'].iloc[j] =Dataframe2['SourceCode'].iloc[j]
期望:我期望在Dataframe3中设置包含Dataframe1中的字符串的“SourceCode”值。但我得到下面的错误。你知道吗
RESULT:
if Dataframe2['SourceCode'].iloc[j].contains(current_field):
AttributeError: 'str' object has no attribute 'contains'
IIUC您应该使用
in
操作符来测试字符串中是否存在子字符串,因此您的循环应该类似于:但是,不建议使用} 方法和^{} :
pandas.DataFrames
循环。因此,另一种解决方案是使用^{[输出]
如果您需要匹配项包含单词边界,请首先创建regex模式,如:
相关问题 更多 >
编程相关推荐