Python 从数据帧到TensorFlow tensor对象的转换

Python 从数据帧到TensorFlow tensor对象的转换,python,pandas,tensorflow,Python,Pandas,Tensorflow,我对Python、机器学习和TensorFlow仍然是新手,但我会尽我最大的努力让自己的脑袋先跳起来。不过我需要一些帮助 我的数据当前在一个数据框中。如何将其转换为TensorFlow对象?我试过了 dataVar_tensor = tf.constant(dataVar) depth_tensor = tf.constant(depth) 但是,我得到了错误[15780行x 9列]-得到了形状[15780,9],但是想要[] 我相信这可能是一个直截了当的问题,但我真的需要帮助 非常感谢 另外

我对Python、机器学习和TensorFlow仍然是新手,但我会尽我最大的努力让自己的脑袋先跳起来。不过我需要一些帮助

我的数据当前在一个数据框中。如何将其转换为TensorFlow对象?我试过了

dataVar_tensor = tf.constant(dataVar)
depth_tensor = tf.constant(depth)
但是,我得到了错误
[15780行x 9列]-得到了形状[15780,9],但是想要[]

我相信这可能是一个直截了当的问题,但我真的需要帮助

非常感谢


另外,我正在Windows 10上使用Anaconda Python 3.5运行tensorflow 0.12,以下基于
numpy
数组输入数据的操作非常简单:

import tensorflow as tf
import numpy as np
a = np.array([1,2,3])
with tf.Session() as sess:
    tf.global_variables_initializer().run()

    dataVar = tf.constant(a)
    print(dataVar.eval())

-> [1 2 3]
不要忘记启动
会话
run()
eval()
您的tensor对象以查看其内容;否则它只会给出它的一般描述


我怀疑,由于您的数据位于数据帧中,而不是一个简单的数组中,因此您需要试验
tf.constant()
形状,您目前没有指定它,以便帮助它理解数据帧的维度并处理其索引等

我使用
df.values

现在,使用

dataVar_tensor = tf.constant(dataVar, dtype = tf.float32, shape=[15780,9])
depth_tensor = tf.constant(depth, 'float32',shape=[15780,1])
似乎有效。我不能说它确实如此,因为我还有其他障碍要克服才能让我的代码正常工作,但希望这是朝着正确方向迈出的一步。谢谢你的帮助


顺便说一句,我在下一个问题中继续尝试让教程在我自己的数据上运行

我发现了一个在Google Colab上运行的解决方案:

import pandas as pd
import tensorflow as tf
#Read the file to a pandas object
data=pd.read_csv('filedir')
#convert the pandas object to a tensor
data=tf.convert_to_tensor(data)
type(data)
这将打印如下内容:

tensorflow.python.framework.ops.Tensor
hottbox.pdtools.utils(hottbox API的集成工具)提供以下功能

   pd_to_tensor(df[, keep_index])
   tensor_to_pd(tensor[, col_name])

用于双向转换。

您可以在
make\u input\u fn(X,y,num\u历元)
函数中使用
tf.estimator.inputs.pandas\u input\u fn
。然而,我还没有设法让它与多索引一起工作。我通过使用df.reset\u index(drop=True)将其转换为标准整数索引,解决了这个问题。
您可以将dataframe列中的

tf.constant((df['column_name']))
这将返回一个张量变量,如下所示:

<tf.Tensor: id=275634, shape=(48895,), dtype=float64, numpy=
array([1, 2, ...])>

希望这能有所帮助。

您希望如何处理这些数据?它是你想要训练的神经网络的输入吗?从错误消息看,常量只是想要一个常量,所以是int或float,而不是amatrix@rAyyy是的,我的计划是最终把它输入神经网络。目前,我只是尝试从教程中获取MNIST示例,并使其在我自己的数据上工作。我正在使用pandas从csv文件中读取。read_csv()谢谢。我正在运行一个InteractiveSession,我尝试了几种不同的
dataVar\u tensor=tf.constant(dataVar,dtype=tf.float32,shape=[15780,9])
,但到目前为止,没有luckI将int的panda系列(y\u train)转换为张量,然后转换为一个hot,如下所示:dataVar\u tensor=tf.Variable(y\u train.as\u matrix(),dtype=tf.int32)result=tf.one_hot(dataVar_tensor,depth)pandas.DataFrame.values确实是TensorFlow教程中建议的
tf.constant(([cdf['column1'], cdf['column2']]))