合并pandas数据库中的相同索引

时间:2013-10-01 06:11:41

标签: python pandas

我很长一段时间以来一直在努力解决这个问题,所以我希望有人可以帮助我。

我在python中有一个时间序列,如下所示:

Dates
2011-01-10   -1500
2011-01-13    1500
2011-01-13   -4000
2011-01-26   -1000
2011-02-02    4000
2011-02-10   -4000
2011-03-03    1000
2011-03-03    2200
2011-06-03    3300
2011-05-03   -1500
2011-06-10   -1200
2011-08-01     -55
2011-08-01      55
2011-12-20    1200
dtype: int32

正如您所看到的,有相同日期的倍数。我想合并这些,然后将值相加,结果是:

Dates
2011-01-10   -1500
2011-01-13   -2500
2011-01-26   -1000
2011-02-02    4000
2011-02-10   -4000
2011-03-03    3200
2011-06-03    3300
2011-05-03   -1500
2011-06-10   -1200
2011-08-01       0
2011-12-20    1200
dtype: int32

知道解决方案的人吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

怎么样:

ts.groupby(ts.index).sum()

ts.groupby(level=0).sum()

答案 1 :(得分:0)

假设您的索引是正确的日期,您可以重新采样到每日间隔。这会在缺失日期输入NaN值,之后需要删除:

ts.resample('D', how='sum').dropna()

更通用的解决方案是对索引进行分组,如果您的索引由字符串或其他内容组成,这甚至可以工作:

ts.groupby(lambda x: x).sum()

如果您的时间戳也包含每小时或其他信息,则上述操作不起作用,因为它仅按相等的值进行分组。然后,您可以使用以下命令将索引格式化为时间戳的“日期部分”:

ts.groupby(lambda x: x.strftime('%Y-%m-%d')).sum()

答案 2 :(得分:0)

sums = ts.groupby('Date').sum()

怎么样?

您可以通过按sums时间序列中的日期分组并对值进行求和来创建名为ts的新系列。