删除熊猫系列中的空列表

怪兽猫

我有一个很长的系列,如下所示:

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

PS理想情况下,我想将系列中的元组也分成两列的DataFrame。

亚历克斯·赖利

您可以使用以下命令查看列表是否为空str.len()

series.str.len() == 0

然后使用此布尔系列删除包含空列表的行。

如果每个条目都是一个包含两个元组的列表(否则为空),则可以使用str两次访问器来创建一个两列的DataFrame (一次选择列表的第一个元素,然后访问该元素的元素)元组):

pd.DataFrame({'a': series.str[0].str[0], 'b': series.str[0].str[1]})

默认情况下,缺少项NaN使用此方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章