Pandas 从列表到pd数据帧,再将问题重塑为神经网络的目标

Pandas 从列表到pd数据帧,再将问题重塑为神经网络的目标,pandas,dataframe,neural-network,Pandas,Dataframe,Neural Network,我正在建立一个简单的神经网络,它是基于顺序的,并且从csv文件中检索列车测试数据。 共有13个特征,15个样本,目标是五个选项中的任意一个(例如,五种颜色中的任意颜色)。用作xtrain的13个特征值存储在13个不同的列中,这是预期的。详情如下: feat_1 feat_2 feat_3 ... feat_11 feat_12 feat_13 0 0.090826 0.923077 0.015069 ... 0.957858

我正在建立一个简单的神经网络,它是基于顺序的,并且从csv文件中检索列车测试数据。 共有13个特征,15个样本,目标是五个选项中的任意一个(例如,五种颜色中的任意颜色)。用作xtrain的13个特征值存储在13个不同的列中,这是预期的。详情如下:

      feat_1    feat_2    feat_3  ...   feat_11       feat_12       feat_13
0   0.090826  0.923077  0.015069  ...  0.957858      0.567030      0.526956
1   0.129642  0.910377  0.055787  ...  0.923693      0.567030      0.586102
2   0.116605  0.909931  0.000000  ...  0.884767      0.526956      0.586102
.
.
.
13  0.080155  0.919048  0.000000  ...  0.945022      0.586102      0.576427
14  0.124639  0.857820  0.279808  ...  0.937488      0.523185      0.576427

[15 rows x 13 columns] <class 'pandas.core.frame.DataFrame'> (15, 13)  
feat_1 feat_2 feat_3。。。壮举11壮举12壮举13
0   0.090826  0.923077  0.015069  ...  0.957858      0.567030      0.526956
1   0.129642  0.910377  0.055787  ...  0.923693      0.567030      0.586102
2   0.116605  0.909931  0.000000  ...  0.884767      0.526956      0.586102
.
.
.
13  0.080155  0.919048  0.000000  ...  0.945022      0.586102      0.576427
14  0.124639  0.857820  0.279808  ...  0.937488      0.523185      0.576427
[15行x 13列](15,13)
但是目标(y_列)不在不同的列中,而不是在一列中,并且每个y_列都保存为列表。当它被称为y_train时,它看起来是这样的:

0     [1, 0, 0, 0, 0]
1     [0, 0, 1, 0, 0]
.
.
13    [0, 0, 0, 1, 0]
14    [0, 1, 0, 0, 0]
Name: target_comb_list, dtype: object <class 'pandas.core.series.Series'> (15,) ytrain
0[1,0,0,0,0]
1     [0, 0, 1, 0, 0]
.
.
13    [0, 0, 0, 1, 0]
14    [0, 1, 0, 0, 0]
名称:target\u comb\u list,数据类型:object(15,)ytrain
当输入到培训中时,显示错误:

ValueError:为输出传递了形状为(15,1)的目标数组 当用作损失时的形状(无,5)
binary\u交叉熵

我认为这个问题可以通过将pd.series列表转换成pd.dataframe来解决,但我没有成功。我试图将其转换为数据帧

y_列=pd.数据帧(y_列)

但它显示了以下错误:

ValueError:为输出传递了形状为(15,1)的目标数组 形状(无,5)

我还尝试将每个列表更改为系列,而不是放入数据帧,但也失败了。
有什么最佳方法可以解决此问题吗?

您可以先将其强制转换为列表,将其转换为numpy数组:

np.array(list(target_comb_list))
然后,如有必要,您可以将其转换为数据帧:

pd.DataFrame(np.array(list(target_comb_list)))

您使用什么创建网络?尝试将y数组转换为15x5 numpy数组。我认为
DataFrame.explode
在这里可能有用。@Robby:我试图将整个系列更改为np.array,然后再更改为DataFrame。我还尝试将该系列的每个元素(实际上是“列表”)更改为np数组,然后更改为df。但这两个案例都失败了,发生了什么?我尝试了上面的代码,它可以很好地处理与您类似结构的数据。它在形状上显示了相同的错误。然后我使用了
DataFrame.explode
,然后对其进行了重塑。现在它正在工作。