我正在使用名为 filteredDS
的熊猫处理Dataframe目标:
搜索所有数据,其 question 列中包含'King'单词。
当我通过 in 运算符添加列 king_quest 时,如下所示:
filteredDS['king_quest'] = filteredDS.question.apply(lambda x: x if ' King ' in x else None).reset_index(drop = True)
filtered_king_df = filteredDS[~filteredDS.king_quest.isnull()].reset_index()
print(filtered_king_df)
我得到大约2000行的数据框, 当我通过.find()函数将其添加时,如下所示:
filteredDS['king_quest'] = filteredDS.question.apply(lambda x: x if x.find('king') else None).reset_index(drop = True)
filtered_king_df = filteredDS[~filteredDS.king_quest.isnull()].reset_index()
print(filtered_king_df)
我得到大约3000行的数据框。
注意:在两种情况下,问题列中的每一行都有'king'字。
你能告诉我为什么会这样吗?
答案 0 :(得分:2)
这里可能有多个问题。
您的发现正在语句中寻找不同的值。 “ King”(一个空格,首字母大写),另一个则为“ king”。
x.find('king')返回第一个匹配项的索引,否则返回-1。如果要使用此功能进行检查,则可能应该检查x.find('king') > 0
,但这不如'king' in x
答案 1 :(得分:1)
运营商
“ in”运算符用于检查序列中是否存在某个值。如果找到指定顺序的变量,则评估为true,否则为false。
import boto3
s3_client = boto3.client('s3')
try:
response = s3_client.generate_presigned_url(ClientMethod=client_method_name,
Params=method_parameters,
ExpiresIn=expiration,
HttpMethod=http_method)
except ClientError as e:
logging.error(e)
return None
# The response contains the presigned URL
return response
find()方法 如果在给定的字符串中找到子字符串,则find()方法返回该子字符串的最低索引。如果找不到,则返回-1。
# Python program to illustrate
# Finding common member in list
# using 'in' operator
list1=[1,2,3,4,5]
list2=[6,7,8,9]
for item in list1:
if item in list2:
print("found")
else:
print("not found")
答案 2 :(得分:0)
以下是对find()方法的更全面的解释:
它有两个参数,即find(string,position),其中string是您的字符串,而position指定了将开始搜索的索引。如果您未指定位置,则find()将从字符串的开头开始。
它还有一个三参数变量,前两个参数类似于二参数变量,第三个参数是在搜索过程中不考虑第一个索引的位置。您可以想到它具有以下签名:find(string,starting_position,Ending_position),并且不包含Ending_position
我以前没有使用filteredDS,也不熟悉它,希望下面的示例可以帮助您想到一种将find()方法应用于您的案例的方法。该代码打印字符串“ text”中所有出现的单词“ it”的索引。
text =“ Lorem Ipsum只是印刷和排版行业的伪文本。自1500年代以来,Lorem Ipsum一直是该行业的标准伪文本。它不仅生存了五个世纪,而且还进入了电子排版的飞跃。基本上没有变化。它在1960年代流行,发布了包含Lorem Ipsum段落的Letraset纸张,最近又使用了桌面出版软件。它得到了广泛的应用。”
index = text.find("it")
while index != -1:
print(index)
index = text.find("it", index+1)