Tôi đang cố gắng thay đổi giá trị ô (màu "đỏ" hoặc "xanh") dựa trên giá trị của một ô khác. Tôi chạy lệnh sau:
df.loc[0, 'Màu'] = df.loc[0, 'Đếm'].apply(lambda x: 'Đỏ' if x <= 500
khác 'Xanh')
Tôi nhận được lỗi sau:
AttributionError: đối tượng 'numpy.float64' không có thuộc tính 'áp dụng'
Bất kỳ trợ giúp nào đều được đánh giá cao
当您使用 df.loc[0, 'Đếm']
, bạn sẽ chỉ trả lại những gì thực sự là float
Các mục vị trí. áp dụng
là một phương pháp trên chuỗi Pandas hoặc numpy, vì vậy bạn cần phải có Loạt
Chỉ các lớp mới có thể sử dụng phương thức này. Vì vậy, rất có thể bạn muốn làm điều gì đó tương tự như thế này nhưng thật khó để biết nếu không có tập dữ liệu thử nghiệm.
df['Colour'] = df['Count'].apply(lambda x: 'Red' if x <=500 else 'Green')
Tạo tập dữ liệu thử nghiệm cho bạn thấy cách chúng hoạt động cùng nhau:
nhập gấu trúc dưới dạng pd
nhập numpy dưới dạng np
df = pd.DataFrame(np.random.randint(0,1000,size=(10, 4)), columns=list('ABCD'))
df['Colour'] = df['A'].apply(lambda x: 'Red' if x <=500 else 'Green')
df.head()
Trả về:
Màu ABCD
0 223 360 133 285 Đỏ
1 300 125 642 238 Đỏ
2 118 293 442 382 Đỏ
3 448 357 55 124 Đỏ
4 995 395 658 559 Xanh
如果您想使用 .loc
Để truy cập toàn bộ cột bạn có thể sử dụng df.loc[:, 'Đếm']
Bạn có thể đọc về .loc
Thông tin thêm về các phương pháp tại đây
Tôi là một lập trình viên xuất sắc, rất giỏi!