Có thể thực hiện việc tham gia trái trong gấu trúc mà chỉ chọn trận đấu đầu tiên ở bên phải không? Ví dụ:Có thể thực hiện việc tham gia trái trong gấu trúc mà chỉ chọn trận đấu đầu tiên ở bên phải không?
left = pd.DataFrame()
left['age'] = [11, 12]
right = pd.DataFrame()
right['age'] = [10, 11, 11]
right['salary'] = [ 100, 150, 200 ]
left.merge(right, how='left', on='age')
Returns
age salary
0 11 100
1 11 200
2 12 NaN
Nhưng những gì tôi muốn là để bảo tồn số hàng của bên trái, bởi chỉ đơn thuần là tham gia trận đấu đầu tiên. Đó là:
age salary
0 11 100
2 12 NaN
Vì vậy, tôi đã sử dụng
left.merge(right.drop_duplicates(['age']), how='left', on='age')
nhưng tôi tin rằng điều này làm cho một bản sao đầy đủ quyền. Và nó có mùi buồn cười.
Có cách nào thanh lịch hơn không?
Việc này sẽ đơn giản để thêm làm tùy chọn để 'hợp nhất'', nhưng hiện không được triển khai. – Jeff
Cảm ơn Jeff. Tôi sẽ yêu cầu nó. Sẽ để lại câu hỏi ở đây trong trường hợp ai đó có thể chỉ ra cho tôi làm thế nào để tránh các bản sao (hoặc tác dụng phụ) trong thời gian này. – Quant