【发布时间】:2015-05-19 22:59:06
【问题描述】:
我有一个长系列,如下所示:
series = pd.Series([[(1,2)],[(3,5)],[],[(3,5)]])
In [151]: series
Out[151]:
0 [(1, 2)]
1 [(3, 5)]
2 []
3 [(3, 5)]
dtype: object
我想删除所有包含空列表的条目。由于某种原因,布尔索引不起作用。
以下测试都给出相同的错误:
series == [[(1,2)]]
series == [(1,2)]
ValueError: Arrays were different lengths: 4 vs 1
这很奇怪,因为在下面的简单示例中,索引的工作方式与上面一样:
In [146]: pd.Series([1,2,3]) == [3]
Out[146]:
0 False
1 False
2 True
dtype: bool
附:理想情况下,我还想将系列中的元组拆分为一个两列的 DataFrame。
【问题讨论】:
-
存储元组就足够了,为什么还要存储列表?
-
系列是运行
df.int_col.astype(object).combine(df.int_col2, func=it.find)的结果,其中it是来自bx-python模块的IntervalTree。 (我正在尝试将区间树中的查找作为矢量化操作。) -
而且由于该函数是用 C 实现的,我认为我不会很快改变它。
标签: python list pandas dataframe