입력 목록을 기반으로 DataFrame을 다듬 으려하지만 목록의 항목이 프레임의 일부 열에 있는지 확인해야합니다.목록의 값을 기준으로 팬더 데이터 프레임 자르기
UID S1 S2 ElementHID n1 n2 n3 n4
0 88.340153 -88.340153 144 1 4 5 5
1 66.370153 -66.370153 144 4 1 5 4
2 74.422513 -74.422513 144 2 7 3 6
3 22.324573 -22.324573 144 1 9 8 1
4 14.322413 -14.322413 144 3 4 6 3
각 행은 최대 4 개 개의 노드를 가질 수있는 요소를 나타냅니다 :
이 같은 외모를 정돈하고 싶은 프레임 (데이터는 아래 랜덤).
다른 프레임에서 필터링 한 노드 목록 (node_list)이 있는데 여기에 와서 해당 요소를 터치하는 노드가 있습니다 (노드가 n1, n2, n3, n4 일 수 있음) . 한 노드에서 여러 요소가 결합 될 수 있으므로 'n'열에는 반복되는 데이터가 있습니다.
전체 프레임 반복을 피하고 싶습니다. 나는 그것을 시도했지만 너무 길어졌다. 나는 이것이 팬더를 통해 할 수 있기를 바라고 있습니다.
행 당 기본 논리와 같은 것 [행의 경우 N1 또는 N2 또는 N3 또는 N4의 노드] 노드가
은 지금까지 개별적으로 컬럼을 통과 시도한 node_list에 통해 반복되는 경우, 만 frame_list의 모든 내용을 병합 한 후 열을 곧바로 유지할 수는 없습니다.
frame_list = []
for n in range(1, 4):
node = 'n' + str(n)
if node in element_frame.columns:
temp_frame = element_frame.merge(pd.DataFrame(node_list), left_on = node, right_on='uid', how = 'inner')
frame_list.append(temp_frame)
else:
continue
더 쉬운 방법이 있기를 바랍니다.
감사합니다,
경희대
아 완벽! 고맙습니다. – khu