[英]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數據框中。
謝謝。
我將數據框的索引設置為ID
和Boolean
列,然后根據唯一值的笛卡爾積構建一個新索引。
看起來像這樣:
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.