>source

다음과 같은 두 개의 데이터 프레임이 있습니다(실제가 더 큼).

DF1:

<테이블 클래스="s-테이블"> <머리> Alliance_names 값1 <바디> cgc inc/nshow ltd/noracle Inc 500 스팀/nsoap jv 없음 성인 BD 8 watrloo jv/ncgc inc/nflow Inc 19

DF2:

<테이블 클래스="s-테이블"> <머리> 회사 1번 2번 <바디> 스팀 15 y 비누 jv 2000 n cgc Inc 4565 n 주식 표시 1 n 흐름 Inc 1111 y 와트루 jv 6756 n

이 두 데이터 프레임을 제휴 및 회사 열과 병합해야 합니다. 동맹 관계에 있는 회사라면 이 정보를 행에 추가해야 합니다. (DF1에서는 회사 사이에 /n 구분 기호가 있습니다.)
결과는 다음과 같아야 합니다.

<테이블 클래스="s-테이블"> <머리> Alliance_names 값1 회사 1번 2번 <바디> cgc inc/nshowltd/noracle Inc 500 cgc Inc 4565 n cgc inc/nshowltd/noracle Inc 500 주식 표시 1 n 스팀/nsoap jv 없음 스팀 15 y 스팀/nsoap jv 없음 비누 jv 2000 n 성인 BD 8 없음 없음 없음 watrloo jv/ncgc inc/nflow Inc 19 와트루 jv 6756 n watrloo jv/ncgc inc/nflow Inc 19 cgc Inc 4565 n watrloo jv/ncgc inc/nflow Inc 19 흐름 주식 1111 y

여기에 있는 모든 회사의 동맹 이름을 복제해야 합니다. "얼라이언스 이름"에서 회사를 분리하고 모든 셀에 회사 목록이 있는 다른 열을 만들려고 했지만 "isin"이 제대로 작동하지 않았고 중복 데이터 프레임을 병합할 수 없었습니다. 도움을 주셔서 미리 감사드립니다!

  • 답변 # 1
    1. 및 .를 사용하여 개별 회사 이름으로 별도의 열("회사"라고 함)을 만듭니다.
    2. "회사" 열에 있는 두 개의 DataFrame.

    df1["Company"]= df1["Alliances_names"].str.split("/n")
    df1= df1.explode("Company")
    output= df1.merge(df2, on="Company", how="left")
    >>> output
                     Alliances_names  Value1     Company  Number1 Number2
    0  cgc inc/nshow ltd/noracle inc   500.0     cgc inc   4565.0       n
    1  cgc inc/nshow ltd/noracle inc   500.0    show ltd      1.0       n
    2  cgc inc/nshow ltd/noracle inc   500.0  oracle inc      NaN     NaN
    3                 steam/nsoap jv     NaN       steam     15.0       y
    4                 steam/nsoap jv     NaN     soap jv   2000.0       n
    5                      saints bd     8.0   saints bd      NaN     NaN
    6  watrloo jv/ncgc inc/nflow inc    19.0  watrloo jv   6756.0       n
    7  watrloo jv/ncgc inc/nflow inc    19.0     cgc inc   4565.0       n
    8  watrloo jv/ncgc inc/nflow inc    19.0    flow inc   1111.0       y
    

    질문 하나 더. df2에 모든 동맹이 없는 경우 "alliances_names"에서 동맹을 삭제하는 방법이 있습니까? 결과적으로 중복이 있는 steam/nsoap jv와 중복이 있는 watrloo jv/ncgc inc/nflow inc만 있게 됩니다.

    Anna Shevtsova2021-10-20 13:00:12

    @AnnaShevtsova -수정했습니다!

    not_speshal2021-10-20 13:00:12
  • 이전 C++ CLI는 C++의 상위 집합입니까?
  • 다음 javascript : 반응 js에서 json 객체에 배열 데이터를 삽입하는 방법