如何从包含数组的 pandas DataFrame 创建 tf.Tensor?
How do I create a tf.Tensor from a pandas DataFrame containing arrays?
我有一个如下所示的 pandas DataFrame。
import pandas as pd
import numpy as np
import tensorflow as tf # Version 2.8.0
df = pd.DataFrame({"id":
["i123", "i456"],
"col": [np.array(["igh", "ghdd", "yu"]),
np.array(["uh", "lkk", "nj"])]})
print(df)
输出:
id col
0 i123 [igh, ghdd, yu]
1 i456 [uh, lkk, nj]
我想根据 col
列的值创建一个 Tensor
,以便在特定用例中使用它们。我试过转换像
这样的值
values = df["col"].to_numpy()
values
看起来像:
array([array(['igh', 'ghdd', 'yu'], dtype='<U4'),
array(['uh', 'lkk', 'nj'], dtype='<U3')], dtype=object)
当我尝试将其转换为 Tensor 时,
tf.constant(values)
我遇到异常:
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
我可以从 documentation 中看出 tf.constant 方法应该适用于非常相似的数组
我创建的 values
变量有 .shape
像 (2,)
而下图有 (2, 3)
,这可能是问题所在。
我似乎无法使 dtype and/or 形状完全匹配,而且我不确定如何让它工作。有什么想法吗?
尝试:
import pandas as pd
import numpy as np
import tensorflow as tf # Version 2.8.0
df = pd.DataFrame({"id":
["i123", "i456"],
"col": [np.array(["igh", "ghdd", "yu"]),
np.array(["uh", "lkk", "nj"])]})
values = df["col"].to_list()
print(tf.constant(values))
tf.Tensor(
[[b'igh' b'ghdd' b'yu']
[b'uh' b'lkk' b'nj']], shape=(2, 3), dtype=string)
或者
values = np.stack(df["col"].to_numpy())
print(tf.constant(values))
我有一个如下所示的 pandas DataFrame。
import pandas as pd
import numpy as np
import tensorflow as tf # Version 2.8.0
df = pd.DataFrame({"id":
["i123", "i456"],
"col": [np.array(["igh", "ghdd", "yu"]),
np.array(["uh", "lkk", "nj"])]})
print(df)
输出:
id col
0 i123 [igh, ghdd, yu]
1 i456 [uh, lkk, nj]
我想根据 col
列的值创建一个 Tensor
,以便在特定用例中使用它们。我试过转换像
values = df["col"].to_numpy()
values
看起来像:
array([array(['igh', 'ghdd', 'yu'], dtype='<U4'),
array(['uh', 'lkk', 'nj'], dtype='<U3')], dtype=object)
当我尝试将其转换为 Tensor 时,
tf.constant(values)
我遇到异常:
ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
我可以从 documentation 中看出 tf.constant 方法应该适用于非常相似的数组
我创建的 values
变量有 .shape
像 (2,)
而下图有 (2, 3)
,这可能是问题所在。
我似乎无法使 dtype and/or 形状完全匹配,而且我不确定如何让它工作。有什么想法吗?
尝试:
import pandas as pd
import numpy as np
import tensorflow as tf # Version 2.8.0
df = pd.DataFrame({"id":
["i123", "i456"],
"col": [np.array(["igh", "ghdd", "yu"]),
np.array(["uh", "lkk", "nj"])]})
values = df["col"].to_list()
print(tf.constant(values))
tf.Tensor(
[[b'igh' b'ghdd' b'yu']
[b'uh' b'lkk' b'nj']], shape=(2, 3), dtype=string)
或者
values = np.stack(df["col"].to_numpy())
print(tf.constant(values))