• pandas定位选取某列某指标最大值所在的行记录,比如月底


    比如对于一个股价时间序列表:

    年月     年月日股价
    贵州茅台202301202301011500
    贵州茅台202301202301201600
    贵州茅台202301202301311400
    贵州茅台202302202302051300
    贵州茅台202302202302281700
    五粮液202301202301021000
    五粮液202301202301312000

    怎样筛选出每个股票在月底那天的股价?

    两种方法:

    1) 先制定好一个每年每月最后一个交易日的表,然后查表

    2)数据分析方法,先按股票和年月分组,然后再定位选取每个月里面日期最大的那一行。

    下面是第二种方法的代码:

    1. import pandas as pd
    2. # 假设你的数据框为df,ym是年月,ymd是年月日,code是股票代码,sc是股价
    3. df = pd.DataFrame({'ym': ['202301', '202301','202301','202302','202302', '202301', '202301'],
    4. 'code':['贵州茅台','贵州茅台','贵州茅台','贵州茅台','贵州茅台','五粮液','五粮液'],
    5. 'ymd': ['20230101', '20230120', '20230131', '20230205','20230228','20230102','20230131'],
    6. "sc":[1500,1600,1400,1300,1700,1000,2000]})
    7. df['ymd'] = pd.to_datetime(df['ymd'])
    8. print(df)
    9. # 假设您的数据框名为df,包含年月(ym)、年月日(ymd)和得分(sc)列
    10. # 首先按年月分组
    11. grouped = df.groupby(['code','ym'])
    12. # 在每个组里面选取年月日最大的那一行记录
    13. #两种方法:
    14. # 1)
    15. #result = grouped.apply(lambda x: x[x['ymd'] == x['ymd'].max()])
    16. #2)
    17. max_date_rows = grouped['ymd'].idxmax()
    18. result = df.loc[max_date_rows]
    19. # 重置索引
    20. result.reset_index(drop=True, inplace=True)
    21. print(result)

     运行结果:

           年月    代码        年月日          股价
    0  202301  贵州茅台 2023-01-01  1500
    1  202301  贵州茅台 2023-01-20  1600
    2  202301  贵州茅台 2023-01-31  1400
    3  202302  贵州茅台 2023-02-05  1300
    4  202302  贵州茅台 2023-02-28  1700
    5  202301  五粮液    2023-01-02   1000
    6  202301  五粮液    2023-01-31   2000
           年月    代码        年月日          股价
    0  202301  五粮液     2023-01-31  2000
    1  202301  贵州茅台 2023-01-31  1400
    2  202302  贵州茅台 2023-02-28  1700

  • 相关阅读:
    TMS320F28335使用多个串口时,SCIRXST Register出现错误
    uni-app 开发调试自动打开手机屏幕大小界面(Aidex移动端开发项目)
    webstorm HbuilderX工具未配置
    pytorch实战---IMDB情感分析
    Unity3D PRO 3D游戏制作系列教程第三课:认识菜单一
    外贸网站被谷歌收录的方法
    c++单元测试
    《C++ primer》练习3.17:改写单词为大写
    第四节:Vben Admin登录对接后端getUserInfo接口
    PTA 1084 外观数列(Python3)
  • 原文地址:https://blog.csdn.net/mlzhu007/article/details/134485250