用另一个以时间戳为索引的 Pandas series 覆盖 Python Pandas series。

3
我有一个系列名为“template”,其中包含3600个$ 0.00(每个$ 0.00代表最后一小时内的一秒钟,并按此进行索引)。我还有另一个名为“transactions”的系列,它来自于API请求的数据,该数据是可变数量的非零美元金额,并且也按时间戳进行索引。由于这些交易都是在过去一小时内进行的,因此“transactions”中的所有时间戳都将在“template”中找到,但反之则不然(除非在过去一小时内每秒都发生了交易)。
对于“template”中与“transactions”中时间戳相匹配的每个时间戳,我想用“transactions”中的美元金额替换那个$ 0.00。我这样做是为了生成最后一小时交易的图形,因此需要$ 0.00而不是NaN,并且有3600个数据点(以维护图形的时间轴的一致性)。
我认为这很简单,就像:
graphSeries = template.update(transactions)

但是当我运行时

print(template)
print(transactions)
print(graphSeries)

我收到了这个(问题在于最后的“None”):
12-26-2021 21:30:39    0.0
12-26-2021 21:30:40    0.0
12-26-2021 21:30:41    0.0
12-26-2021 21:30:42    0.0
12-26-2021 21:30:43    0.0
                      ...
12-26-2021 22:30:34    0.0
12-26-2021 22:30:35    0.0
12-26-2021 22:30:36    0.0
12-26-2021 22:30:37    0.0
12-26-2021 22:30:38    0.0
Length: 3600, dtype: float64

12-26-2021 21:31:10      697986.00
12-26-2021 21:32:07     8780106.00
12-26-2021 21:32:54      900542.00
12-26-2021 21:34:52     8784483.00
12-26-2021 21:35:05    26309692.00
12-26-2021 21:39:48      500000.00
12-26-2021 21:39:55     1999940.00
12-26-2021 21:41:54     1189745.40
12-26-2021 21:43:21     1399102.56
12-26-2021 21:44:33     1607717.00
12-26-2021 21:46:13     1189745.40
12-26-2021 21:47:56     1000000.00
12-26-2021 21:49:08    12414533.00
12-26-2021 21:50:21     1546034.00
12-26-2021 21:50:30    13141109.60
12-26-2021 21:50:33     2277359.00
12-26-2021 21:50:39      503834.00
12-26-2021 21:50:51     1397967.00
12-26-2021 21:51:03      580000.00
12-26-2021 21:51:44      542158.00
12-26-2021 21:52:12     1546034.00
12-26-2021 21:54:04     1662123.80
12-26-2021 21:54:31    12052320.00
12-26-2021 21:54:52     1546024.00
12-26-2021 21:55:53     1000000.00
12-26-2021 21:56:30     1507000.00
dtype: float64

None

我做错了什么吗?Pandas的update(Series)方法不能使用时间戳进行索引吗?


2
你能否创建一个简单的示例,使用5或6行代码来展示你的问题。https://dev59.com/O2Ij5IYBdhLWcg3wk182 - Scott Boston
1
感谢@ScottBoston提供的关于如何提出更好问题的指南。我从现在开始会使用这个方法,但是在这个例子中,Paul下面的回答已经解决了我的问题。 - AnthonyJS
1个回答

1

啊,非常感谢您的回答!在pandas中是否有一种方法可以使用除了不是原地函数的.update(series)之外的其他东西来完成这个操作呢?供其他观看此问题的人参考,这里是pandas.Series文档(https://pandas.pydata.org/docs/reference/api/pandas.Series.update.html?highlight=update#pandas.Series.update) - AnthonyJS
我之所以问是因为我需要重用我的模板系列。我想我只需根据需要执行template_copy = template.copy(),然后更新这些副本。 - AnthonyJS
1
我认为复制是一个合理的解决方案。 - Paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接