python字典中的通配符

2024-10-04 11:23:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个python字典来引用'WHM1',2,3',HISPM1',2,3等,以及其他迭代来创建一个新列,其中包含一个特定的字符串,例如White或Hispanic。使用regex似乎是一条正确的道路,但我在这里遗漏了一些东西,拒绝在字典中硬编码整件事。你知道吗

我尝试了regex和regexdict的多次迭代:

d = regexdict({'W*':'White', 'H*':'Hispanic'})
eeoc_nac2_All_unpivot_df['Race'] = 
eeoc_nac2_All_unpivot_df['EEOC_Code'].map(d)

将根据名为'EEOC_Code'的现有列中的内容为每行创建一个新列,其中'White''Hispanic'。你知道吗


Tags: 字符串df字典codeallregexwhitehispanic
2条回答

我不确定是否完全理解你的问题。但是,如果你所有的标签都有结构WHM。。。和HISP…,然后您只需检查第一个字符:

for race in eeoc_nac2_All_unpivot_df['EEOC_Code']:
     if race.startswith('W'):
         eeoc_nac2_All_unpivot_df['Race'] = "White"
     else:
         eeoc_nac2_All_unpivot_df['Race'] = "Hispanic"

注意:只有当eeoc_nac2_All_unpivot_df['EEOC_Code']中的内容是可iterable时,它才起作用。你知道吗

您的正则表达式是错误的-您似乎使用了glob语法而不是正确的正则表达式。你知道吗

在regex中,x*意味着“零个或更多的x”,因此两个regex都会很容易地匹配空字符串。你显然是说

d = regexdict({'^W':'White', '^H':'Hispanic'})

相反,regex锚定符^与字符串开头匹配。你知道吗

有几个第三方包123命名为regexdict,所以您应该指出您使用的是哪一个。我无法判断这里是否需要^,或者regex是否需要完全匹配输入(我假设子字符串匹配就足够了,就像regex中通常的情况一样),因为这类细节在实现之间可能会有很大的不同。你知道吗

相关问题 更多 >