因此,我有一个如下所示的简单数据框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
请帮助!
谢谢。
最佳答案
不,它不是bug @elyase,应将其写为DF[DF['clean_grams']!=[[],]*len(DF)]
。
考虑一下df['clean_grams'] != []
的内部情况,numpy
无法确定array
是[]
(因为array
也是list
)还是应该广播和比较它到[[],]*len(DF)]
。因此,我们必须通过明确地告诉它执行后者来在此提供帮助。
异常消息显示为ValueError: Arrays were different lengths: 5 vs 0
,对此进行了全面说明。
关于python - 如何进行这个 Pandas 查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22924370/