是否有一种直接的蟒蛇熊猫方法来匹配系列的值并用字符串更新不同的系列?我找不到任何直接的方法。
这里的匹配是在由给定的一组关键字和一个强制关键字组成的系列中找到一个值。
例子:
以下是关键字表:
KW:
case,kws,mand_kw,Friendly name
1,full|name|nm|txt|dsc[0-9],full,Full Name
2,first|name|nm|txt|dsc|[0-9],first,First Name
3,last|name|nm|txt|dsc|[0-9],last,Last Name
4,legal|name|nm|txt|dsc|[0-9],legal,Legal Name
5,nick|name|nm|txt|dsc|[0-9],nick,Nick NameDF
_id,field_name,field_friendly_name,purpose_of_use,is_included_in_report
1,FullName,,,
2,xyz,,,
3,custname,,,
4,FullNm,,,
5,FirstName,,,
6,abc,,,
7,FirstNm,,,
8,LastName,,,
9,LastNm,,,
10,LegalName,,,
11,LegalNm,,,
12,NickName,,,
13,pqr,,,
14,NickNm,,,对于来自KW的每个kws,在DF中的field_name中查找匹配项,即它仅由kws中指定的关键字组成,而不是任何其他单词,并且强制应该有一个mand_kw关键字。
例如:
Case1:
查找所有仅由以下关键字组成的field_name,如有,则指定field_friendly_name of KW --在DF中将“全名”分配给field_friendly_name,并将is_included_in_report更新为true。如果该值不是由这些关键字构成的,则跳过。
_id,field_name,field_friendly_name,purpose_of_use,is_included_in_report
1,fullname,Full Name,,TRUE
4,fullnm,Full Name,,TRUE
8,fullname74,Full Name,,TRUE
9,fulltxt,Full Name,,TRUE发布于 2020-07-03 13:11:12
以下是我尝试过的:
import pandas
import re
KW = pd.read_csv("regex.csv")
DF = pd.read_csv("Default-Profile.csv")
for i in range (0,KW.kws.size):
for j in range (0,DF.field_name.size):
if (DF.field_name.match(r"KW.kws[i]") == True && (DF.field_name.match(r"mand_kw[i]" == True)):
DF.field_friendly_name[j] = KW.field_friendly_name[i]
DF.is_included_in_report[j] = "True"https://datascience.stackexchange.com/questions/77075
复制相似问题