如何从多索引中提取总年份行和列以在绘图中创建直方图
Posted
技术标签:
【中文标题】如何从多索引中提取总年份行和列以在绘图中创建直方图【英文标题】:How to extract total year rows and columns from multiindex to create histograms in plotly 【发布时间】:2021-09-10 01:42:04 【问题描述】:如何创建数据框以显示每年的每日数据以绘制直方图?
Open High Low Close Volume
Date
2019-06-26 81.478964 81.789175 80.102395 80.422302 5731400
2019-06-27 80.839148 81.411104 80.528937 81.129974 4111600
2019-06-28 81.255994 81.682537 80.577409 81.527428 16436700
.....
2020-12-31 81.255994 81.682537 80.577409 81.527428 16436700
我希望 2019 年数据框的输出包含 2019 年的所有交易,而我的其他数据框则包含 2020 年的所有交易
【问题讨论】:
看看这个答案***.com/a/61339028/3376059 最后一个建议的选项将允许您按年份过滤,我希望这就是您所要求的(所以如果没有,可以做更多的阐述)。另外,请提供一种重新创建数据框的方法。 您能否更具体一点,您要绘制 OHLC 的哪些值?您有期望的输出示例吗? @OmerM25 这正是我想要的。我要删除我的问题吗? 【参考方案1】:由于您有日期时间索引,您可以使用DatetimeIndex.year
获取索引的年份来过滤年份,如下所示:
df_2019 = df.loc[df.index.year == 2019]
df_2020 = df.loc[df.index.year == 2020]
你也可以使用:
df_2019 = df.loc['2019-01-01':'2019-12-31']
df_2020 = df.loc['2020-01-01':'2020-12-31']
【讨论】:
【参考方案2】:试试
d = x : y for x , y in df.groupby(df.index.year)
【讨论】:
以上是关于如何从多索引中提取总年份行和列以在绘图中创建直方图的主要内容,如果未能解决你的问题,请参考以下文章
Pandas 多索引数据框 - 从多索引中的一个索引中选择最大值