【问题标题】:How to make this pandas query?如何进行这个熊猫查询?
【发布时间】:2014-04-07 22:36:24
【问题描述】:

所以我有一个简单的数据框 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

请帮忙!

谢谢。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    不,这不是错误@elyase,应该写成DF[DF['clean_grams']!=[[],]*len(DF)]

    考虑一下幕后发生的事情,df['clean_grams'] != []numpy 无法确定array 是否是[](因为array 也是list)还是应该广播并将其与[[],]*len(DF)] 进行比较。因此,我们必须通过明确告诉它执行后者来帮助它。

    异常消息显示为ValueError: Arrays were different lengths: 5 vs 0,这说明了一切。

    【讨论】:

    • 这就是让熊猫对人们如此困难的东西。它以一个干净的抽象来嘲弄你,但它总是会中断:) 谢谢你的帮助。
    猜你喜欢
    • 2023-03-21
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多