因此,我有一个如下所示的简单数据框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/

10-12 17:31
查看更多