중복 행을 기본 키와 둘 이상의 정보 열을 사용하여 동일한 행으로 병합하는 방법

wilssssssslam

내 데이터는 다음과 같습니다.

NAME1,NAME1_001,NULL,LIC100_1,NULL,LIC300-3,LIC300-6
NAME1,NAME1_003,LIC000_1,NULL,NULL,NULL,NULL
NAME2,NAME2_001,LIC000_1,NULL,LIC400_2,NULL,NULL
NAME3,NAME3_001,NULL,LIC400_2,NULL,NULL,LIC500_1
NAME3,NAME3_005,LIC000_1,NULL,LIC400_2,NULL,NULL
NAME3,NAME3_006,LIC000_1,NULL,LIC400_2,NULL,NULL
NAME4,NAME4_002,NULL,LIC100_1,NULL,LIC300-3,LIC300-6

예상 결과:

NAME1|NAME1_001|NULL|LIC100_1|NULL|LIC300-3|LIC300-6|NAME1_003|LIC000_1|NULL|NULL|NULL|NULL
NAME2|NAME2_001|LIC000_1|NULL|LIC400_2|NULL|NULL
NAME3|NAME3_001|NULL|LIC400_2|NULL|NULL|LIC500_1|NAME3_005|LIC000_1|NULL|LIC400_2|NULL|NULL|NAME3_006|LIC000_1|NULL|LIC400_2|NULL|NULL
NAME4|NAME4_002|NULL|LIC100_1|NULL|LIC300-3|LIC300-6

아래 명령을 시도했지만 세부 정보를 추가하는 방법을 모릅니다 ($ 3 ~ $ 7)

awk '
    BEGIN{FS=","; OFS="|"}; 
    { arr[$1] = arr[$1] == ""? $2 : arr[$1] "|" $2 }   
    END {for (i in arr) print i, arr[i] }' file.csv

어떠한 제안? 감사!!

RavinderSingh13

다음을 시도해 주시겠습니까? GNU에 표시된 샘플로 작성 및 테스트되었습니다 awk.

awk '
BEGIN{
  FS=","
  OFS="|"
}
FNR==NR{
  first=$1
  $1=""
  sub(/^,/,"")
  arr[first]=(first in arr?arr[first] OFS:"")$0
  next
}
($1 in arr){
  print $1 arr[$1]
  delete arr[$1]
}
' Input_file  Input_file

설명 : 위에 대한 자세한 설명을 추가합니다.

awk '                       ##Starting awk program from here.
BEGIN{                      ##Starting BEGIN section of this program from here.
  FS=","                    ##Setting FS as comma here.
  OFS="|"                   ##Setting OFS as | here.
}
FNR==NR{                    ##Checking FNR==NR which will be TRUE when first time Input_file is being read.
  first=$1                  ##Setting first as 1st field here.
  $1=""                     ##Nullifying first field here.
  sub(/^,/,"")              ##Substituting starting comma with NULL in current line.
  arr[first]=(first in arr?arr[first] OFS:"")$0  ##Creating arr with index of first and keep adding same index value to it.
  next                      ##next will skip all further statements from here.
}
($1 in arr){                ##Checking condition if 1st field is present in arr then do following.
  print $1 arr[$1]          ##Printing 1st field with arr value here.
  delete arr[$1]            ##Deleting arr item here.
}
' Input_file  Input_file    ##Mentioning Input_file names here.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

중복을 선택하는 사용자 정의 로직이 아닌 동일한 크기의 목록을 병합하는 방법 자바 8 스트림

분류에서Dev

한 열에 둘 이상의 행 값을 사용하여 여러 행을 하나로 병합

분류에서Dev

여러 중복 열을 기반으로하는 시퀀스를 사용하여 중복 행에 자동 번호 지정 방법 (T-SQL)

분류에서Dev

동일한 Pandas 데이터 프레임의 열 값을 기반으로 행을 복제하는 방법

분류에서Dev

동일한 Pandas 데이터 프레임의 열 값을 기반으로 행을 복제하는 방법

분류에서Dev

동일한 "키"열을 기반으로 행을 병합하고 동일하지 않은 "키가 아닌"열을 병합하여 SQL 축소 테이블

분류에서Dev

Pandas를 사용하여 둘 이상의 열을 기반으로 검색을 인덱싱하는 방법

분류에서Dev

동일한 키를 가진 하나 이상의 중첩 배열 값을 병합하는 방법

분류에서Dev

기본 키 열을 제외하고 동일한 테이블의 다른 행과 동일한 행 설정

분류에서Dev

일부 열을 기반으로 중복 행을 제거하는 방법

분류에서Dev

특별한 조건으로 SQL에서 중복 행을 병합하는 방법

분류에서Dev

중복 데이터 행을 하나의 행으로 정렬하는 방법

분류에서Dev

dplyr을 사용하여 열 ID를 기반으로 행 데이터를 병합하는 방법

분류에서Dev

두 스프레드 시트의 열을 기반으로 중복 값을 찾고 행이 정확히 일치하는지 확인하는 방법

분류에서Dev

단일 열의 중복 값을 기반으로 워크 시트의 행을 삭제하는 방법

분류에서Dev

둘 이상의 자동 크기 조정 그룹을 사용하여 EKS Cluster-Autoscaler를 배포하는 방법

분류에서Dev

PHP를 사용하여 둘 이상의 xml 파일을로드하는 방법

분류에서Dev

awk를 사용하여 for 루프와 배열을 사용하여 파일의 행을 재정렬하는 방법

분류에서Dev

Excel : 동일한 열 값으로 행을 정렬하는 방법

분류에서Dev

둘 이상의 열을 기반으로 프라임 UI 데이터 테이블을 정렬하는 방법

분류에서Dev

중복 값 행을 고유 한 행과 여러 열로 정렬하는 방법

분류에서Dev

동일한 열 내의 중복 값에 대해 IF 문을 수행하는 방법

분류에서Dev

세 열을 기반으로 중복을 제거하는 방법은 무엇입니까?하지만 R을 사용하여 특정 열에서 가장 높은 숫자의 행을 유지합니까?

분류에서Dev

쉼표 구분 기호를 사용하여 여러 행의 값을 단일 행으로 결합하는 방법

분류에서Dev

행의 일부 열을 다른 열로 병합하는 방법

분류에서Dev

두 개의 동일한 행을 찾고 둘 다 삭제하는 방법은 무엇입니까? (단 하나의 중복이 아닙니다!)

분류에서Dev

동일한 기본 키를 사용하여 행을 삭제 한 후 테이블에 데이터를 삽입하는 방법은 무엇입니까?

분류에서Dev

열 1에 동일한 값을 가진 둘 이상의 csv 파일 행을 합산하는 방법은 무엇입니까?

분류에서Dev

with-Python을 사용하여 둘 이상의 파일 열기

Related 관련 기사

  1. 1

    중복을 선택하는 사용자 정의 로직이 아닌 동일한 크기의 목록을 병합하는 방법 자바 8 스트림

  2. 2

    한 열에 둘 이상의 행 값을 사용하여 여러 행을 하나로 병합

  3. 3

    여러 중복 열을 기반으로하는 시퀀스를 사용하여 중복 행에 자동 번호 지정 방법 (T-SQL)

  4. 4

    동일한 Pandas 데이터 프레임의 열 값을 기반으로 행을 복제하는 방법

  5. 5

    동일한 Pandas 데이터 프레임의 열 값을 기반으로 행을 복제하는 방법

  6. 6

    동일한 "키"열을 기반으로 행을 병합하고 동일하지 않은 "키가 아닌"열을 병합하여 SQL 축소 테이블

  7. 7

    Pandas를 사용하여 둘 이상의 열을 기반으로 검색을 인덱싱하는 방법

  8. 8

    동일한 키를 가진 하나 이상의 중첩 배열 값을 병합하는 방법

  9. 9

    기본 키 열을 제외하고 동일한 테이블의 다른 행과 동일한 행 설정

  10. 10

    일부 열을 기반으로 중복 행을 제거하는 방법

  11. 11

    특별한 조건으로 SQL에서 중복 행을 병합하는 방법

  12. 12

    중복 데이터 행을 하나의 행으로 정렬하는 방법

  13. 13

    dplyr을 사용하여 열 ID를 기반으로 행 데이터를 병합하는 방법

  14. 14

    두 스프레드 시트의 열을 기반으로 중복 값을 찾고 행이 정확히 일치하는지 확인하는 방법

  15. 15

    단일 열의 중복 값을 기반으로 워크 시트의 행을 삭제하는 방법

  16. 16

    둘 이상의 자동 크기 조정 그룹을 사용하여 EKS Cluster-Autoscaler를 배포하는 방법

  17. 17

    PHP를 사용하여 둘 이상의 xml 파일을로드하는 방법

  18. 18

    awk를 사용하여 for 루프와 배열을 사용하여 파일의 행을 재정렬하는 방법

  19. 19

    Excel : 동일한 열 값으로 행을 정렬하는 방법

  20. 20

    둘 이상의 열을 기반으로 프라임 UI 데이터 테이블을 정렬하는 방법

  21. 21

    중복 값 행을 고유 한 행과 여러 열로 정렬하는 방법

  22. 22

    동일한 열 내의 중복 값에 대해 IF 문을 수행하는 방법

  23. 23

    세 열을 기반으로 중복을 제거하는 방법은 무엇입니까?하지만 R을 사용하여 특정 열에서 가장 높은 숫자의 행을 유지합니까?

  24. 24

    쉼표 구분 기호를 사용하여 여러 행의 값을 단일 행으로 결합하는 방법

  25. 25

    행의 일부 열을 다른 열로 병합하는 방법

  26. 26

    두 개의 동일한 행을 찾고 둘 다 삭제하는 방법은 무엇입니까? (단 하나의 중복이 아닙니다!)

  27. 27

    동일한 기본 키를 사용하여 행을 삭제 한 후 테이블에 데이터를 삽입하는 방법은 무엇입니까?

  28. 28

    열 1에 동일한 값을 가진 둘 이상의 csv 파일 행을 합산하는 방법은 무엇입니까?

  29. 29

    with-Python을 사용하여 둘 이상의 파일 열기

뜨겁다태그

보관