나는 match_id, slot 및 text 열이있는 채팅 정보를 포함하는 Dota에서 구문 분석 된 일치의 데이터 프레임을 가지고 있습니다. 각 행은 한 줄의 텍스트를 나타냅니다. 이제 모든 슬롯 (플레이어를 나타냄)에 모든 텍스트가 값 목록에 할당되도록 해당 행을 그룹화하고 싶습니다. 슬롯은 0-9의 숫자이므로 5 번 매치의 0 번 텍스트가 1 번 매치의 0 번 슬롯의 텍스트와 함께 그룹화되는 것을 원하지 않습니다. 어떻게해야합니까? 제자리에서 할 수 있습니까? 아니면 처음부터 새 데이터 프레임을 만들어야합니까?
다음은 입력의 예입니다.
match_id, slot, text
0, 0, "gg"
0, 2, "good game"
0, 2, "well
play"
1, 0, "glhf" 1, 6, "u2"
1, 0, "thx"
. .., ..., ...
내가 원하는 것은 다음과 같이 요약하는 것입니다.
match_id, 슬롯, 텍스트
0, 0, "gg"
0, 2, { "좋은 게임", "잘 플레이했습니다"}
1, 0, { "glhf", "thx"}
1, 6, "u2"
... , ..., ...
나는 이것이 약간의 명확성을 가져 오기를 바랍니다.
이 코드를 사용하십시오.
import pandas as pd
df = pd.DataFrame({'match_id' :[0,0,0,1,1,1] ,'slot': [0,2,2,0,6,0] ,'text': ['gg','good game','well played' ,'glff' , 'u2' , 'thx'] })
df.groupby(['match_id','slot'])['text'].apply(list).reset_index(name='text_list')
산출:
match_id slot text_list
0 0 0 [gg]
1 0 2 [game, well played]
2 1 0 [glff, thx]
3 1 6 [u2]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다