我有一种使用部分字符串匹配来分配列的方法。我现在已经扩展了该方法,通过使用带有字符串列表使用for循环按照本例:Pandas使用for循环设置部分字符串匹配的列:使用包含NaN的向量进行索引错误
是myDF:
mytestdata Colourtoassign
0 blah Orange blah FALSE
1 blah blah Red FALSE
凡Colourtoassign是一列要在部分字符串分配比赛中使用列表colourList循环:
[ '黑', '蓝', '绿色', '橙', '粉红', '紫', '红', '白色', '黄色', '粉色']
我要把它放到我的for循环如下:
for i in range(len(colourList)-1):
mydf.loc[mydf['mytestdata'].str.contains(colourList[i]), 'Colourtoassign'] = colourList[i]
屈服的是myDF期望的结果:
mytestdata Colourtoassign
0 blah Orange blah Orange
1 blah blah Red Red
但是,当我尝试使用它与我的实际数据按照下面的示例:
for i in range(len(cableList)-1):
ordersTwo.loc[ordersTwo['Variation details'].str.contains(cableList[i]), 'VariationStringLabel_FULL'] = cableList[i]
我得到错误ValueError:无法用包含NA/NaN值的向量索引。
该数据帧的相关栏目:
ordersTwo [ '变化细节']:
0 NaN
1 NaN
2 [Cable Length (metres):3M (9ft, 10in),Colour:Hot Pink]
3 [Cable Length (metres):2M (6ft, 7in),Colour:Hot Pink]
ordersTwo [ 'VariationStringLabel_FULL']:
0 FALSE
1 FALSE
2 FALSE
3 FALSE
虽然我不相信它是发生索引的矢量,我尝试删除命令的NaN's ['Variation details'] using ordersTwo ['Variation details']。fillna(0,inplace = True)但结果是一样的。
我的代码或我的方法有什么错误?