You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从以日期为索引的Pandas DataFrame提取各股票最新日期行?

解决方法:提取每只股票最新日期的记录

你之前的代码klse_df[['adj_close','ticker','short_name']].index.max()只会返回整个DataFrame里的最大日期值,而不是每只股票对应的最新日期行——这就是为啥你只拿到了日期,没拿到其他数据。要实现按股票分组提取最新记录,试试下面的几种方法:

方法1:用groupby + idxmax(推荐,效率更高)

这种方法先找到每只股票最新日期对应的行索引,再提取这些行的数据:

# 把日期索引转为列(方便后续分组筛选,也可以跳过这步直接用索引)
klse_df['date'] = klse_df.index

# 按ticker分组,获取每组中日期最大的行的索引
latest_row_indices = klse_df.groupby('ticker')['date'].idxmax()

# 根据索引提取对应的行,并选择需要的列
latest_stock_data = klse_df.loc[latest_row_indices, ['adj_close', 'ticker', 'short_name']]

方法2:用groupby + apply

如果不想转索引为列,可以直接对分组后的子DataFrame筛选最新日期的行:

# 按ticker分组,每组取索引(日期)最大的那一行,再选择目标列
latest_stock_data = klse_df.groupby('ticker').apply(
    lambda group: group.loc[group.index.max()]
)[['adj_close', 'ticker', 'short_name']]

验证示例

用你给出的示例数据测试,两种方法都会返回:

dateadj_closetickershort_name
2018-04-060.2900001SCOMNET

这样就能得到每只股票最新日期的adj_close、ticker和short_name数据啦。

内容的提问来源于stack exchange,提问作者Timothy Lombard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:23:31