【发布时间】:2018-01-24 17:37:08
【问题描述】:
我之前问过这个问题,但这个问题因为不清楚而被降级。所以我删了。
我希望这个重新制作的版本会更清晰!
错误代码是一个更大项目的一部分,因此创建一个最小示例并不容易,特别是因为我对 Python 还很陌生,但对 Pandas 几乎是全新的,但如果需要,我会尝试。
All_holdings 是投资组合对象的一部分。在变量窗口中查看它似乎是一个字典列表(这是否正确)?
正如您从代码中看到的那样,它随后被转换为一个名为曲线的 pandas 数据框。
curve = pd.DataFrame(self.all_holdings)
此时,曲线数据框包括“datetime”和“total”列,这两个列都包含 self.all_holdings 中原始 dicts 列表中的正确值。
但是在表演之后:
curve.set_index('datetime', inplace=True)
“日期时间”列已消失,“总计”列现在具有“日期时间”值。
'total' 列的原始值也消失了?
我本来希望“日期时间”列成为索引(但不是因为它的值消失)而其他一切都保持不变?
这是我使用 3.6 到他的 2.7 的 Python 版本的问题,我也在使用 pandas 0.22.0,示例使用未指定的早期版本。
【问题讨论】:
-
总值仍然存在,带有日期时间索引,例如
1990-01-01 10000.0 -
不要不使用屏幕截图。使用问题中的文本构建一个可重现的示例,人们可以将其复制并粘贴到 jupyter notebook 的文本文件中
-
"...但如果需要我会尝试" -- 你总是需要尝试。通过创建MCVE,您将更好地了解您自己的问题,甚至可能无需像 SO 那样解决它。应该将其视为询问的先决条件。
-
另外,不要将您不理解的代码称为“错误”。如果您只是简单地在 Google 上搜索“pandas set_index”,您会很快找到非常简洁的 documentation,并带有视觉示例,可以准确地解释您所看到的预期行为。