在python中,如何从DataFrame中的列表列中选择所有元素?
我正在使用一个字典,其中键的值由列表列表组成。我将其转换为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 ...
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]