Python 如何在包含缺失行的数据中进行聚合?
有一个带有(id,x)对的数据帧和一个感兴趣的id列表 我可以通过Python 如何在包含缺失行的数据中进行聚合?,python,pandas,Python,Pandas,有一个带有(id,x)对的数据帧和一个感兴趣的id列表 我可以通过df[['ID','x']]获得每个感兴趣的ID的x的总和。groupby('ID')。agg('sum') 但如果没有特定ID的记录,它将不会显示在结果中。如何为此类ID获取零?在SQL中,这将是一个外部联接 示例数据: id x ------ 1 10 1 12 2 27 4 49 使用感兴趣的ID[1,2,3,4]预期结果为: 1 22 2 27 3 0 4 49 使用reindex In [2
df[['ID','x']]获得每个感兴趣的ID的x的总和。groupby('ID')。agg('sum')
但如果没有特定ID的记录,它将不会显示在结果中。如何为此类ID获取零?在SQL中,这将是一个外部联接
示例数据:
id x
------
1 10
1 12
2 27
4 49
使用感兴趣的ID[1,2,3,4]
预期结果为:
1 22
2 27
3 0
4 49
使用
reindex
In [226]: (df.groupby('id').sum()
.reindex(range(1, df['id'].max() + 1), fill_value=0)
.reset_index())
Out[226]:
id x
0 1 22
1 2 27
2 3 0
3 4 49
谢谢!我只是在学熊猫。这确实是解决办法。我希望包括一个手动定义的ID列表,所以在我的例子中它变成了:
.reindex(我的列表,fill\u value=0)