【发布时间】:2020-05-12 12:45:03
【问题描述】:
我有一个如下所示的列表数据框:
alist = ['male','male', 'male','female','male, '0', 'female','female','female','male', 'female']
['0','female', 'male','female','female, 'male', 'male','male','female','male',]
现在,我想将嵌套在“女性”之间的所有“男性”值设置为零,反之亦然,以便获得不重叠值的列表。
['male','male', 'male','0','male, '0', 'female','female','female','0', 'female']
['0','female', '0','female','female, 'male', 'male','male','0','male',]
我试过这个:
for i in alist:
rules1 = [ i == 'male',
i + 1 == 'female',
i - 1 == 'female']
rules2 = [ i == 'female',
i + 1 == 'male',
i - 1 == 'male']
if all(rules1) or all(rules2):
i = 0
else:
i = i
return alist
fixlist_['new_tags'] = fixlist_.apply(find_start, axis=1)
我做错了什么,但我似乎无法理解。此代码返回错误
----> 9 i + 1 == 'cons',
10 i - 1 == 'cons']
11 rules2 = [ i == 'cons',
TypeError: ('can only concatenate str (not "int") to str', 'occurred at index 0')
谢谢大家。
【问题讨论】:
-
我遇到的第一个错误是列表中第 4 个
male之后缺少引号。而且您的i不是索引,它是'male'等列表的值。这就是您的TypeError 的原因。 -
@Melebius 该链接很有帮助,但下面是一个精确的解决方案
标签: python pandas list enumerate