[英]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.