python中的print生成器数组对象

时间:2017-08-04 21:18:15

标签: python pandas printing

我希望通过打印来查看生成器对象的内容。

我已将一个函数应用于数据帧,此函数将返回数组作为输出。目前,如果我打印它显示此消息:

print(df["events"])

0     <generator object count_ones at 0x000001FDF619...
1     <generator object count_ones at 0x000001FDF619...
2     <generator object count_ones at 0x000001FDF619...

事件列数据示例如下:[0,1,0,2]

1 个答案:

答案 0 :(得分:0)

我在下面重新创建了你的场景(我认为)

r = (i for i in range(3))
s = pd.Series([r], [1, 2, 3])
s

1    <generator object <genexpr> at 0x11c06ff10>
2    <generator object <genexpr> at 0x11c06ff10>
3    <generator object <genexpr> at 0x11c06ff10>
dtype: object

这是个坏消息。请注意at 0x11c06ff10。这告诉我,我有3个指针都是同一个精确的生成器对象。这意味着如果我尝试apply(list),我将获得第一个系列元素的列表(可能),并且当我到达第二个元素时,生成器将被花费。

s.apply(list)

1    [0, 1, 2]
2           []
3           []
dtype: object

我说可能是因为它可能在申请之前已经用完了

r = (i for i in range(3))
s = pd.Series([r], [1, 2, 3])
list(r);

s.apply(list)

1    []
2    []
3    []
dtype: object

我甚至不确定你的意思是什么。假设您想要一系列列表。然后解决您的问题首先从您如何创建系列开始。

r = [i for i in range(3)]
s = pd.Series([r], [1, 2, 3])
s

1    [0, 1, 2]
2    [0, 1, 2]
3    [0, 1, 2]
dtype: object

在我的示例中,括号[]与括号()的括号有很大差异。 []表示列表推导,它返回一个列表。 ()返回一个生成器。耸耸肩,我不知道为什么。它只是。

你从哪里去?提出另一个问题,详细了解您尝试构建的结构类型。