Tôi đang cố gắng đặt một số khác nhau trong một DataFrame gấu trúc tất cả cùng một giá trị. Tôi nghĩ rằng tôi hiểu lập chỉ mục boolean cho gấu trúc, nhưng tôi đã không tìm thấy bất kỳ tài nguyên nào về lỗi cụ thể này.Giá trị cài đặt DataFrame pandas trên mặt nạ boolean
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'f']})
mask = df.isin([1, 3, 12, 'a'])
df[mask] = 30
Traceback (most recent call last):
...
TypeError: Cannot do inplace boolean setting on mixed-types with a non np.nan value
Ở trên, tôi muốn thay thế tất cả các mục True
trong mặt nạ có giá trị 30
.
Tôi có thể làm df.replace
thay vào đó, nhưng mặt nạ cảm thấy hiệu quả hơn và trực quan hơn ở đây. Ai đó có thể giải thích lỗi và cung cấp một cách hiệu quả để đặt tất cả các giá trị không?
Ông có thể xác nhận cho dù câu trả lời của tôi hoặc kết quả Johne được những gì bạn mong muốn và cập nhật câu hỏi của bạn để chỉ rõ điều này, nhờ – EdChum
Cảm ơn , @EdChum. Tôi muốn đặt các giá trị 'True' trong mặt nạ và để các giá trị' False' giống nhau. Tôi đã chỉnh sửa câu hỏi cho rõ ràng. –
Đừng lo, tôi đã cập nhật câu trả lời, bạn chỉ cần đảo ngược mặt nạ để đạt được những gì bạn muốn – EdChum