我希望通过打印来查看生成器对象的内容。
我已将一个函数应用于数据帧,此函数将返回数组作为输出。目前,如果我打印它显示此消息:
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]
答案 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
在我的示例中,括号[]
与括号()
的括号有很大差异。 []
表示列表推导,它返回一个列表。 ()
返回一个生成器。耸耸肩,我不知道为什么。它只是。
你从哪里去?提出另一个问题,详细了解您尝试构建的结构类型。