所以我有一个简单的数据框df如下所示。 clean_grams列是python列表或NaN。列表中可以包含元素或为空。
clean_grams part
0 [] E1028364E7BA353750620317F8ED618187EA76B5
1 NaN 4C5AA421DF5FF650A63695C33AAF35531E79FC1E
2 [] 637148EF9EE16F4A0BA9A44C72330F32A7C8C9BB
3 ['dog'] C48B08CA63359A4849B00D9A3622A604BB3EDB80
4 NaN 932FEB7317F2E1ACEC569B9C49C3B4563C50D946
现在选择所有非空列表的行,我试过:
df[df['clean_grams'] != []]
但是我收到了一个值错误:http://pastebin.com/ugQuFqRD
请帮忙!
谢谢你。答案 0 :(得分:2)
不,它不是@elyase的错误,应该写成DF[DF['clean_grams']!=[[],]*len(DF)]
。
考虑一下发生了什么,df['clean_grams'] != []
,numpy
无法确定array
是否为[]
(因为array
是也是一个list
),或者它应该广播并与[[],]*len(DF)]
进行比较。所以我们必须通过专门告诉它做后者来帮助它。
异常消息显示ValueError: Arrays were different lengths: 5 vs 0
,这解释了所有内容。