99.12 金融难点通俗解释:毛利率-6. 实现代码

时间:2025-01-23 07:52:00
import tushare as ts

def get_gross_profit_margin(ts_code, start_date=None, end_date=None):
    """
    获取上市公司毛利率数据
    
    参数:
        ts_code (str): 股票代码(如:'600000.SH')
        start_date (str): 开始日期(如:'20200101')
        end_date (str): 结束日期(如:'20231231')
    
    返回:
        pandas.DataFrame: 包含日期和毛利率的数据框
    """
    try:
        # 初始化pro接口
        pro = ts.pro_api()
        
        # 构建查询参数
        params = {'ts_code': ts_code}
        if start_date:
            params['start_date'] = start_date
        if end_date:
            params['end_date'] = end_date
            
        # 获取财务指标数据
        df = pro.fina_indicator(**params)
        
        # 选择需要的字段并排序
        result = df[['end_date', 'grossprofit_margin']].sort_values('end_date', ascending=False)
        
        return result
        
    except Exception as e:
        print(f"获取数据时发生错误: {str(e)}")
        return None