Tôi có một Pandas DataFrame
với bốn cột, A, B, C, D
. Đôi khi, các giá trị của B
và C
có thể là 0
. Vì vậy, tôi muốn để có được những điều sau đây:Pandas DataFrame Áp dụng
B[i] = B[i] if B[i] else min(A[i], D[i])
C[i] = C[i] if C[i] else max(A[i], D[i])
nơi tôi đã sử dụng i
để chỉ chạy trên tất cả các hàng của khung. Với Pandas, bạn có thể dễ dàng tìm thấy các hàng có chứa 0 cột:
df[df.B == 0] and df[df.C == 0]
tuy nhiên tôi không biết làm thế nào để dễ dàng thực hiện chuyển đổi trên. Tôi có thể nghĩ ra các phương pháp không hiệu quả và không hiệu quả (for
vòng trên toàn bộ khung hình) nhưng không có gì đơn giản.
Khá gọn gàng. Tuy nhiên, tôi nghĩ rằng bạn có thể loại bỏ '.max (axis = 1)' thay vì 'apply (...)'. –
'max()' là ok quá tất nhiên, tôi nghĩ rằng tôi đã thiên về 'áp dụng' bằng cách bạn hỏi câu hỏi :-) –