python - 如何仅从 DataFrame 上的 groupby 中获取第一行?
问题描述
我正在研究一个数据框,该数据框在一天内有多个时间间隔的股票收盘价。我正在尝试进行 groupby 以获得最终收盘价(当我在 Date 列上应用 max 函数时的第一行)。
我的 groupby 代码如下所示:
closingPrice = Data.groupby([Data['Date'].dt.date, 'Close'])["Date"].max()
这将产生以下输出:
Date Close
2019-11-11 1706.75 2019-11-11 14:15:00
1710.75 2019-11-11 10:15:00
1711.00 2019-11-11 12:15:00
1712.00 2019-11-11 11:15:00
1712.85 2019-11-11 13:15:00
...
2020-11-06 3238.75 2020-11-06 14:15:00
3240.00 2020-11-06 12:15:00
3243.65 2020-11-06 13:15:00
如何更改上面的行以便我只得到第一行?我每天只需要一排。
我是熊猫的新手,感谢您对此的帮助。
解决方案
首先,如果我正确理解了您的数据,您就不想放入Close
groupby。每笔交易都有一个时间戳Date
和Close
价值。
您可以使用idxmax()
获取索引和 loc:
Data.loc[Data.groupby([Data['Date'].dt.date])["Date"].idxmax()]
如果您只关心Close
价格,则可以将该列传递给loc
:
Data.loc[Data.groupby([Data['Date'].dt.date])["Date"].idxmax(), 'Close']
推荐阅读
- html - Divs 不占用 100% 的屏幕宽度
- vb.net - 在 vb.net 上将整数数据转换为日期的错误值
- javascript - Vue ES 模块和浏览器冲突
- postgresql - INNER JOIN change SUM result
- python - 如何使用 Matplotlib 在 3D 界面中的多个节点之间绘制线条
- matlab - 使用matlab求解微分方程
- r - 使用带有 covmat 选项的 svyby 时,带有 NA 数据的 R 调查包出现问题
- javascript - 如何访问数组中的数组
- javascript - 为什么文件名和字符串不相等?
- docker - 添加 docker GPG 密钥时出现错误(gpg:无法打开'-':没有这样的文件或目录)