我有一个pandas数据帧,包含3列:
| val1 | val2 | val3 |
|--------------------------|
| Nike | NaN | NaN |
| Men | Adidas | NaN |
| Puma | Red | Women |
和3个列表:
^{pr2}$我尝试对每一行应用一个函数,根据函数返回的布尔值检查并将每个值放入新列中。在
| val1 | val2 | val3 | brand | gender | color
|----------------------------------------------------
| Nike | NaN | NaN | Nike | NaN | NaN
| Men | Adidas | NaN | Adidas | Men | NaN
| Puma | Red | Women | Puma | Women | Red
我使用列表来说明我的问题,但是在我的脚本中,我使用enchant库来检查字典中是否存在一个值。在
我已经试过了:
ref_brands = enchant.request_pwl_dict("ref_brands.txt")
brands_checker = SpellChecker(ref_brands)
print brands_checker.check('Puma')
> True
print brands_checker.check('Men')
> False
[pyenchant tutorial][1]
def my_cust_check(x, checker):
l = x.tolist()
for e in iter(l):
try:
if checker.check(e.strip().encode('utf-8')) is True:
return e.strip()
else:
return None
except:
return None
df_query_split['brand'] = df_query_split.apply(my_cust_check,checker=brand_checker, axis=1)
df_query_split['gender'] = df_query_split.apply(my_cust_check,checker=gender_checker, axis=1)
df_query_split['color'] = df_query_split.apply(my_cust_check,checker=color_checker, axis=1)
您可以使用:
详细信息:
首先按^{} 比较:
^{pr2}$提取
True
s的值:将} ,并使用前向填充(
NaN
s替换为^{ffill
):按^{} 查看最后一列:
相关问题 更多 >
编程相关推荐