나는 아래와 같이 두 개의 팬더 데이터 프레임을 연결합니다.팬더 : 고유 한 값으로 조건부 연결
part1 = pd.DataFrame({'id' :[100,200,300,400,500],
'amount': np.random.randn(5)
})
part2 = pd.DataFrame({'id' :[700,100,800,500,300],
'amount': np.random.randn(5)
})
concatenated = pd.concat([part1, part2], axis=0)
amount id
0 -0.458653 100
1 2.172348 200
2 0.072494 300
3 -0.253939 400
4 -0.061866 500
0 -1.187505 700
1 -0.810784 100
2 0.321881 800
3 -1.935284 500
4 -1.351507 300
행 id
이미 part1
에 나타나지 않는 경우 part2
의 행에만 concatenated
에 포함되도록 내가 작업을 제한 할 수 있습니까? 어떤면에서는 id
열을 세트로 처리하려고합니다.
concat() 중에 이것을 수행 할 수 있습니까, 아니면 더 후 처리 단계입니까?
는 이 예를 들어원하는 출력은 다음과 같습니다
concatenated_desired
amount id
0 -0.458653 100
1 2.172348 200
2 0.072494 300
3 -0.253939 400
4 -0.061866 500
0 -1.187505 700
2 0.321881 800
[manual] (http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.drop_duplicates.html)을 확인했지만 여전히 확실하지 않습니다. 이렇게하면 주어진 'id'의 첫 번째 발생 (행)을 유지할 수 있습니까? – Rhubarb
예, take_last 인수가 있습니다. 부울 값, 기본값은 False입니다. 마지막으로 관찰 된 행을 연속으로 가져옵니다. 기본값은 첫 번째 행입니다. 그래서 당신은 첫 번째 또는 마지막으로 유지할 것을 선택할 수 있습니다. – HYRY
그래서'take_last = False' (기본값)는'take_first'를 의미합니까? – Rhubarb