pandas:有效地将两个(时间)序列的值相加
pandas: efficiently adding the values of two (time) series
我有两个(比玩具示例大)系列例如:
s1 = pd.read_json('{"count":{"1614470400000":4,"1617148800000":0,"1619740800000":0,"1622419200000":4,"1625011200000":4,"1627689600000":5,"1630368000000":0,"1632960000000":8,"1635638400000":2}}')['count']
s2 = pd.read_json('{"count":{"1625011200000":1}}')['count']
添加它们的有效方法是什么?
我可以想象创建一个连接,然后添加忽略 nans,但我认为这应该比对它们进行合并排序的某些操作慢?
这是玩具示例的预期结果:
使用参数 fill_value=0
尝试 Series.add(...)
out = s1.add(s2,fill_value=0)
count
2019-06-30 1.0
2021-02-28 4.0
2021-03-31 0.0
2021-04-30 0.0
2021-05-31 4.0
2021-06-30 4.0
2021-07-31 5.0
2021-08-31 0.0
2021-09-30 8.0
2021-10-31 2.0
以下有效,但我真的不知道您如何将 2019 年 6 月 30 日和 2021 年 6 月 30 日加在一起得到 5。我不得不将 2019 年更改为 2021 年才能使其有效。
s3 = pd.concat([s1,s2])
s3.groupby(level=0).sum()
我有两个(比玩具示例大)系列例如:
s1 = pd.read_json('{"count":{"1614470400000":4,"1617148800000":0,"1619740800000":0,"1622419200000":4,"1625011200000":4,"1627689600000":5,"1630368000000":0,"1632960000000":8,"1635638400000":2}}')['count']
s2 = pd.read_json('{"count":{"1625011200000":1}}')['count']
添加它们的有效方法是什么? 我可以想象创建一个连接,然后添加忽略 nans,但我认为这应该比对它们进行合并排序的某些操作慢?
这是玩具示例的预期结果:
使用参数 fill_value=0
尝试 Series.add(...)out = s1.add(s2,fill_value=0)
count
2019-06-30 1.0
2021-02-28 4.0
2021-03-31 0.0
2021-04-30 0.0
2021-05-31 4.0
2021-06-30 4.0
2021-07-31 5.0
2021-08-31 0.0
2021-09-30 8.0
2021-10-31 2.0
以下有效,但我真的不知道您如何将 2019 年 6 月 30 日和 2021 年 6 月 30 日加在一起得到 5。我不得不将 2019 年更改为 2021 年才能使其有效。
s3 = pd.concat([s1,s2])
s3.groupby(level=0).sum()