簡體   English   中英

填寫熊貓中缺少的布爾行

[英]Fill in missing boolean rows in Pandas

我有一個MySQL查詢,正在執行groupby並以以下形式返回數據:

ID | 布爾| 計數

有時表中沒有用於布爾狀態之一的數據,因此單個ID的數據可能會這樣返回:

1234 | 0 | 10

但是,我需要以這種形式進行下游分析:

1234 | 0 | 10
1234 | 1 | 0

在[ID,Boolean]上具有索引。

從查詢Google和SO來看,讓MySQL進行此轉換似乎有些痛苦。 在熊貓中,有沒有簡單的方法可以做到這一點? 我在文檔或《熊貓食譜》中找不到任何有用的東西。

您可以假設我已經將數據加載到沒有索引的Pandas數據框中。

謝謝。

我將數據框的索引設置為IDBoolean列,然后根據唯一值的笛卡爾積構建一個新索引。

看起來像這樣:

import pandas
indexcols = ['ID', 'Boolean']

data = pandas.read_sql_query(engine, querytext)
full_index = pandas.MultiIndex.from_product(
    [data['ID'].unique(), [0, 1]], 
    names=indexcols
)

data = (
    data.set_index(indexcols)
        .reindex(full_index)
        .fillna(0)
        .reset_index()
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM