我有一个MySQL查询正在执行groupby并以下列形式返回数据:
ID |布尔|计数
有时表中没有其中一个布尔状态的数据,因此可能会返回单个ID的数据:
1234 | 0 | 10
但是我需要这种形式用于下游分析:
1234 | 0 | 10个
1234 | 1 | 0
,[ID,布尔]的索引。
从查询Google和SO,看起来让MySQL进行这种转换似乎有点痛苦。在熊猫中有一个简单的方法吗?我无法在文档或熊猫食谱中找到任何有用的东西。
您可以假设我已经将数据加载到没有索引的Pandas数据帧中。
感谢。
答案 0 :(得分:1)
我会将您的数据框的索引设置为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()
)