다음과 같은 데이터 프레임 df1이 있습니다.
topic_id topic
1 Sun
2 Cloud
3 Rain
다음과 같은 다른 데이터 프레임 df2가 있습니다.
article_id title topics
1 title_1 []
2 title_2 [Sun, Cloud]
3 title_3 [Rain]
내 목표는 df1 및 df2를 사용하여 데이터 프레임 df3을 만드는 것입니다.
주제 목록 열에 주제가 나타날 때마다 df3에 행을 만들고 싶습니다. 그리고이 행에서 주제가 나타날 때 df2의 기사 ID와 df1의 주제 ID를 갖고 싶습니다. 목록이 비어 있으면 df3에 아무것도 생성되지 않습니다.
다음과 같은 새 데이터 프레임을 갖고 싶습니다.
article_id topic_id topics
2 1 Sun
2 2 Cloud
3 3 Rain
어떻게 할 수 있습니까?
DataFrame.explode
에서 기본 내부 조인과 함께 사용 DataFrame.merge
, 목록 별 열의 마지막 변경 순서 :
cols = ['article_id','topic_id','topics']
df = df2.explode('topics').merge(df1.rename(columns={'topic':'topics'}))[cols]
print (df)
article_id topic_id topics
0 2 1 Sun
1 2 2 Cloud
2 3 3 Rain
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다