Python 如何在包含缺失行的数据中进行聚合?

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

有一个带有(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 [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)