>source

나는 이 질문을 어떻게 공식화해야 하는지조차 아는 데 어려움을 겪고 있지만 이것이 내가 성취하려고 하는 것입니다:

다음과 같은 수천 개의 행이 있는 pandas 데이터 테이블이 있습니다.

df= pd.read_excel("data.xlsx")

<테이블 클래스="s-테이블"> <머리> 아이디 텍스트 값1 값2 <바디> 1 이것은 사실 거짓 2 "value1"의 값 사실 거짓 3 그 외의 사람들 거짓 사실 4 는 "value2"의 값입니다. 거짓 사실

조건을 충족하는 모든 셀을 열 이름별로 그룹화하는 동안 단일 셀에서 조건을 충족하는 셀을 결합하여 다음과 같은 표를 얻으려면 어떻게 해야 합니까?

<테이블 클래스="s-테이블"> <머리> 값 merge_text <바디> 값1 이것은 "value1"의 값입니다. 값2 다른 것들은 "value2"의 값인 반면

이 문제를 해결하려면 먼저 테이블을 단일 열의 조건을 충족하는 값을 포함하는 여러 테이블로 분할한 다음 모든 테이블을 병합해야 한다고 생각했습니다.

v1= df[['id', 'text', 'value1']]
v1= v1[v1["value1"]==True]

<테이블 클래스="s-테이블"> <머리> 아이디 텍스트 값1 <바디> 1 이것은 사실 2 "value1"의 값 사실

v2= df[['id', 'text', 'value2']]
v2= v2[v2["value2"]==True]

<테이블 클래스="s-테이블"> <머리> 아이디 텍스트 값2 <바디> 3 그 외의 사람들 사실 4 는 "value2"의 값입니다. 사실

내가 알지 못하고 온라인에서 답을 찾지 못한 것은 다음과 같이 셀을 병합하는 방법입니다.

<테이블 클래스="s-테이블"> <머리> 값 merge_text <바디> 값1 이것은 "value1"의 값입니다.
  • 답변 # 1

    당신은 할 수 있습니다set_index"id"와 "text"로; 그 다음에스택 DF. 그런 다음 (i) Series 자체를 필터링합니다. (ii)그룹비"가치"와가입하다"텍스트":

    s= df.set_index(['id','text']).stack()
    out= s[s].reset_index(level=1).groupby(level=1)['text'].apply(' '.join).reset_index()
    

    출력:

      index                                           text
    0  value1               These are the Values of "value1"
    1  value2  While these others are the Values of "value2"
    

    와우, 감사합니다. 완벽하게 작동했습니다! stack()에 대한 문서를 읽을 것입니다. 이 용어는 처음 봅니다.

    iDevFS2022-02-15 03:13:16
  • 이전 개인 IPv4가 여러 네트워크 인터페이스에 할당되면 어떻게 됩니까?
  • 다음 Mapbox, AllTrails 및 Maps.me와 같은 앱은 모든 OSM 데이터를 어떻게 사용하고 표시합니까? 모든 리소스가 엄청난 양의 데이터라고 말할 때