在python中,如何从DataFrame中的列表列中选择所有元素?

在python中,如何从DataFrame中的列表列中选择所有元素?,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用一个字典,其中键的值由列表列表组成。我将其转换为DataFrame,输出如下: nodes_labels = DataFrame.from_dict(nodes_neighbors, orient='index') nodes_labels.columns = ['Neighbor','Degree', 'max_Similar', 'NI_Label'] Neighbor ...

我正在使用一个字典,其中键的值由列表列表组成。我将其转换为DataFrame,输出如下:

nodes_labels = DataFrame.from_dict(nodes_neighbors, orient='index')
nodes_labels.columns = ['Neighbor','Degree', 'max_Similar', 'NI_Label']


                                             Neighbor  ...                      NI_Label
0   [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 17, 1...  ...     [2.203889356257777, 0, 1]
3                                [0, 1, 2, 7, 12, 13]  ...    [2.0422979797979797, 0, 1]
33  [8, 9, 13, 14, 15, 18, 19, 20, 22, 23, 26, 27,...  ...   [1.8302700210614677, 32, 0]
1                    [0, 2, 3, 7, 13, 17, 19, 21, 30]  ...    [1.8283661952083003, 0, 1]
32     [2, 8, 14, 15, 18, 20, 22, 23, 29, 30, 31, 33]  ...     [1.74376221404619, 32, 0]
7                                        [0, 1, 2, 3]  ...    [1.3425824175824175, 0, 1]
2                  [0, 1, 3, 7, 8, 9, 13, 27, 28, 32]  ...    [1.2265813134234187, 0, 1]
13                                   [0, 1, 2, 3, 33]  ...    [0.8298701298701299, 0, 1]
29                                   [23, 26, 32, 33]  ...   [0.5291005291005291, 32, 0]

       NI_Label
0        0
3        0
33       32
1        0
32       32
7        0
2        0
13       0
29       32
我想选择列
NI_Label
,并从中为所有行选择列表中的第二个元素。我想要的结果如下:

nodes_labels = DataFrame.from_dict(nodes_neighbors, orient='index')
nodes_labels.columns = ['Neighbor','Degree', 'max_Similar', 'NI_Label']


                                             Neighbor  ...                      NI_Label
0   [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 17, 1...  ...     [2.203889356257777, 0, 1]
3                                [0, 1, 2, 7, 12, 13]  ...    [2.0422979797979797, 0, 1]
33  [8, 9, 13, 14, 15, 18, 19, 20, 22, 23, 26, 27,...  ...   [1.8302700210614677, 32, 0]
1                    [0, 2, 3, 7, 13, 17, 19, 21, 30]  ...    [1.8283661952083003, 0, 1]
32     [2, 8, 14, 15, 18, 20, 22, 23, 29, 30, 31, 33]  ...     [1.74376221404619, 32, 0]
7                                        [0, 1, 2, 3]  ...    [1.3425824175824175, 0, 1]
2                  [0, 1, 3, 7, 8, 9, 13, 27, 28, 32]  ...    [1.2265813134234187, 0, 1]
13                                   [0, 1, 2, 3, 33]  ...    [0.8298701298701299, 0, 1]
29                                   [23, 26, 32, 33]  ...   [0.5291005291005291, 32, 0]

       NI_Label
0        0
3        0
33       32
1        0
32       32
7        0
2        0
13       0
29       32

我只能选择列
NI_标签
,但我不知道如何为所有行选择列表中的第二个元素

您可以
。使用自定义lambda函数应用

print(nodes_labels['NI_Label'].apply(lambda x: x[1]))

让我们试试
.str[index]

nodes_labels['NI_Label']=nodes_labels.NI_Label.str[1]