【问题标题】:Appending a generator class object to a pandas dataframe将生成器类对象附加到 pandas 数据帧
【发布时间】:2018-11-01 09:14:41
【问题描述】:

我有一个包含许多水果的特征数据集,标签以逻辑概率告诉我们使用 tensorflow 是否是苹果。 但是我似乎无法将预测数据添加到原始数据框中。

    predictions = DNN_classifier.predict(input_fn=is_apple_ds)

这将返回一个生成器类对象,如果我创建一个列并将其添加到原始数据框中,它只会显示“某个地址的生成器类对象”

我想在原始数据框中添加一列,而不是给出实际预测值

编辑: 我的问题只是如何从生成器对象中提取所有值并将其添加到熊猫数据框

【问题讨论】:

    标签: python-3.x pandas tensorflow machine-learning


    【解决方案1】:

    根据tensorflowdocumentationpredict()yield每一个预测。这就是你得到一个生成器对象的原因。


    def generate_sequence():
        for x in range(0,10):
            yield x
    
    generated_sequence = generate_sequence()
    

    >> print(generated_sequence)
    <generator object generate_sequence at 0x7fdc31f23990>
    

    您可以通过将生成器对象转换为list 或简单地调用pd.DataFrame() 来将生成器对象放入DataFrame

    >> list(generated_sequence)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    >> pd.DataFrame(generated_sequence)
    
    0
    0   0
    1   1
    2   2
    3   3
    4   4
    5   5
    6   6
    7   7
    8   8
    9   9
    

    【讨论】:

    • 它返回一个字典列表,每个都像这样:{'logits': array([-5.0688373e-05], dtype=float32), 'logistic': array([0.49998736], dtype=float32), 'probabilities': array([0.5000127 , 0.49998736], dtype=float32), 'class_ids': array([0]), 'classes': array([b'0'], dtype=object)},为什么它们都一样?
    • 您必须查看predict() 产生的结果以及您希望从该结果中得到什么。
    猜你喜欢
    • 2023-04-10
    • 2022-01-04
    • 1970-01-01
    • 2015-12-21
    • 2020-09-13
    相关资源
    最近更新 更多