Python 根据数据来源的列追加列表

Python 根据数据来源的列追加列表,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,我正在尝试将一个二进制numpy数组附加到另一个numpy数组中,以输入神经网络。二进制列表取决于数组来自的列。 例如,来自第三列的数组是[0 0 1 0 0 0 0 0 0 0] 以下是一个例子: 数据(数组列表): 假设前两个元素来自dataframe的第一列,第三个元素来自第二列。附加二进制数组后,数据将如下所示: [([0, 1, 1, 1, 0], [1 0 0 0 0 0 0 0 0]), ([0, 1, 0, 0, 1], [1 0 0 0 0 0 0 0 0]), (

我正在尝试将一个二进制numpy数组附加到另一个numpy数组中,以输入神经网络。二进制列表取决于数组来自的列。 例如,来自第三列的数组是
[0 0 1 0 0 0 0 0 0 0]

以下是一个例子:

数据(数组列表):

假设前两个元素来自dataframe的第一列,第三个元素来自第二列。附加二进制数组后,数据将如下所示:

 [([0, 1, 1, 1, 0], 
[1 0 0 0 0 0 0 0 0]), 

([0, 1, 0, 0, 1],
[1 0 0 0 0 0 0 0 0]), 

([1, 0, 0, 0, 0],
[0 1 0 0 0 0 0 0 0])]
在上下文中,我最初只在数据帧的一列上进行训练,但是现在我希望能够在整个数据帧上进行训练

有没有一种方法可以根据数据来自的列自动将此数组附加到我的数据中,这样神经网络就可以对整个数据集进行训练,而不仅仅是逐列进行训练


此外,这需要两个输入层还是一个输入层

也许你可以给你的问题加一个更具体的例子。但不管怎样,这是你所期待的吗

In [1]: import pandas as pd                                                                                                                                                                           

In [2]: df = pd.DataFrame({'col1': [[0,0,1], [1,1,1]], 'col2': [[1,1,0],[0,0,0]]})                                                                                                                    

In [3]: df                                                                                                                                                                                            
Out[3]: 
        col1       col2
0  [0, 0, 1]  [1, 1, 0]
1  [1, 1, 1]  [0, 0, 0]

In [4]: for col_index, col_name in enumerate(df.columns): 
   ...:     array_to_append = [0] * len(df.columns) 
   ...:     array_to_append[col_index] = 1 
   ...:     df[col_name] = df[col_name].map(lambda x: (x, array_to_append)) 
   ...:                                                                                                                                                                                               

In [5]: df                                                                                                                                                                                            
Out[5]: 
                  col1                 col2
0  ([0, 0, 1], [1, 0])  ([1, 1, 0], [0, 1])
1  ([1, 1, 1], [1, 0])  ([0, 0, 0], [0, 1])

添加一个您想要的示例会有所帮助。编辑,希望能有所帮助。数据框是什么样子的?数据框有9列,每列由0和1组成,每列的长度相等。每个条目都是一个0或1。
In [1]: import pandas as pd                                                                                                                                                                           

In [2]: df = pd.DataFrame({'col1': [[0,0,1], [1,1,1]], 'col2': [[1,1,0],[0,0,0]]})                                                                                                                    

In [3]: df                                                                                                                                                                                            
Out[3]: 
        col1       col2
0  [0, 0, 1]  [1, 1, 0]
1  [1, 1, 1]  [0, 0, 0]

In [4]: for col_index, col_name in enumerate(df.columns): 
   ...:     array_to_append = [0] * len(df.columns) 
   ...:     array_to_append[col_index] = 1 
   ...:     df[col_name] = df[col_name].map(lambda x: (x, array_to_append)) 
   ...:                                                                                                                                                                                               

In [5]: df                                                                                                                                                                                            
Out[5]: 
                  col1                 col2
0  ([0, 0, 1], [1, 0])  ([1, 1, 0], [0, 1])
1  ([1, 1, 1], [1, 0])  ([0, 0, 0], [0, 1])