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

Pandas: Thêm giá trị 0 ở nơi không có hàng (thưa thớt)

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

Tôi có Pandas DataFrame với MultiIndex. Giá trị của MultiIndex nằm trong (0,0) đến (1000,1000) Trong phạm vi, cột có hai trường Pq.

Tuy nhiên, DataFrame thưa thớt. Nghĩa là, nếu không có số liệu tương ứng với một chỉ mục cụ thể (ví dụ: (3,2)) thì sẽ không có bất kì(3,2). Tôi muốn làm cho nó bớt thưa thớt hơn bằng cách sử dụng p=0 và q=0 Điền vào những dòng này. Tiếp tục với ví dụ, nếu tôi thực thi df.loc[3].loc[2], tôi muốn nó quay trở lại p=0 q=0,KHÔNG Không có hồ sơ như vậy (hiện tại).

Làm rõ: Bởi "thưa thớt", ý tôi chỉ là theo nghĩa tôi đang sử dụng nó, các giá trị 0 bị bỏ qua. Tôi không đề cập đến bất cứ điều gì bên trong Pandas hoặc Numpy.

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

xem xét điều nàydf

dữ liệu = {
(1, 0): dict(p=1, q=1),
(3, 2): dict(p=1, q=1),
(5, 4): dict(p=1, q=1),
(7, 6): dict(p=1, q=1),
}
df = pd.DataFrame(data).T
df

pq
1 0 1 1
3 2 1 1
5 4 1 1
7 6 1 1

sử dụng lập chỉ mục lại và được xây dựng pd.MultiIndex.from_product TRONG điền_value=0

mux = pd.MultiIndex.from_product([range(8), range(8)])
df.reindex(mux, fill_value=0)

pq
0 0 0 0
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
1 0 1 1
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
2 0 0 0
1 0 0
2 0 0
3 0 0

Trả lời bình luận
Bạn có thể nhận được mức chỉ số tối thiểu, tối đa như thế này

def mn_mx(idx):
trả về idx.min(), idx.max()

mn0, mx0 = mn_mx(df.index.levels[0])
mn1, mx1 = mn_mx(df.index.levels[1])

mux = pd.MultiIndex.from_product([range(mn0, mx0 + 1), range(mn1, mx1 + 1)])
df.reindex(mux, fill_value=0)

Về python - Pandas: Thêm giá trị 0 khi không có hàng (thưa thớt), 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/41370111/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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