为什么pandas.core.series.Series有时无法在Python中转换为割炬张量?

时间:2020-05-02 19:29:20

标签: python pandas pytorch

我有一个数据框,其中我选择了两列:

X_train, X_test, y_train, y_test = train_test_split(df["EnergyFront"], df["particle"], test_size=0.2) 

X_train和X_test的类型都是pandas.core.series.Series,结果非常相似:

IMAGE

我可以将X_train转换为火炬张量:

X_train = torch.Tensor(X_train) 

但是,当我尝试对X_test做同样的事情时:

X_test = torch.Tensor(X_test) 

我收到以下错误:

ValueError                                Traceback (most recent call last)
<ipython-input-174-14117eb3ce4e> in <module>()
----> 1 X_test = torch.Tensor(X_test)

ValueError: could not determine the shape of object type 'Series'

我该如何解决? 顺便说一下,我正在Google Colaboratory上运行。

1 个答案:

答案 0 :(得分:1)

此处描述了此问题:https://github.com/pytorch/pytorch/pull/7583 为了确定系列的形状,他们尝试访问索引为0的元素。如果找不到该元素,则会发生此错误。就您而言,这可能是因为您的X_test不包含整个系列的第一个元素。

我认为,针对您的情况的有效解决方案是将X_test转换为如下数组:

X_test = torch.Tensor(X_test.to_numpy())