cuốn sách gpt4 ai đã làm

python - Pandas 分类错误 : "Cannot setitem on a Categorical with a new category, set the categories first"

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 11:41:05 25 4
mua khóa gpt4 Nike

Tôi có khung dữ liệu df sau trong gấu trúc:

    ngày trong tuần venta_total_cy
0 Viernes 5.430211e+09
1 âm lịch 3.425554e+09
2 Sabado 6.833202e+09
3 Domingo 6.566466e+09
4 Jueves 2.748710e+09
5 Mart 3.328418e+09
6 Miercoles 3.136277e+09

Những gì tôi muốn làm là sắp xếp khung dữ liệu theo thứ tự những ngày sau:

ngày trong tuần
âm lịch
Martes
Miercoles
Jueves
Viernes
Sabado
Domingo

Đối với điều này tôi đã sử dụng đoạn mã sau:

df['weekday'] = pd.Categorical(df[['weekday']], Category=["Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo" ])

Khi tôi chạy mã, tôi gặp lỗi sau:

ValueError: Không thể đặt mục trên Danh mục với danh mục mới, hãy đặt danh mục trước

Tôi không tìm thấy đủ tài liệu để giải quyết vấn đề này. bạn có thể giúp tôi được không? Cảm ơn!

câu trả lời hay nhất

df[['ngày trong tuần']] Trả về một khung dữ liệu không chính xác. Sẽ loạt Các cột được chuyển đổi thành các cột phân loại. Ngoài ra, sử dụng đã ra lệnh=Đúng Các tham số thiết lập trật tự trong các cột phân loại của bạn.

danh mục = np.array(
['Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo'])

df['ngày trong tuần'] = pd.Categorical(
df['ngày trong tuần'], danh mục=danh mục, đặt hàng=Đúng)
df.sort_values(by='weekday')

ngày trong tuần venta_total_cy
1 âm lịch 3.425554e+09
5 Mart 3.328418e+09
6 Miercoles 3.136277e+09
4 Jueves 2.748710e+09
0 Viernes 5.430211e+09
2 Sabado 6.833202e+09
3 Domingo 6.566466e+09

Về lỗi phân loại python - Pandas: "Không thể đặt mục trên Danh mục với danh mục mới, hãy đặt danh mục trước", chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/49197386/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress