39  ex02_万诗晴

import pandas as pd
import os
from openpyxl import load_workbook

# 定义目录路径
directory = "/Users/wanshiqing/Desktop/python_code/CSMAR/data_raw_zip"

# 定义需要提取的列
required_columns = [
    '负债合计', '资产总计', '流动负债合计', '长期负债合计', 
    '期末现金及现金等价物余额', '净利润', '所有者权益合计',
    '短期借款', '长期借款', '股权集中度1', '股权集中度9',
    '首次上市日期', '行业代码'
]

# 初始化一个空的DataFrame用于存储最终结果
merged_df = pd.DataFrame()

# 遍历目录下所有Excel文件
for filename in os.listdir(directory):
    if filename.endswith('.xlsx'):
        file_path = os.path.join(directory, filename)
        
        # 检查文件是否有效
        try:
            # 使用openpyxl加载工作簿获取第一行作为列名
            wb = load_workbook(file_path, read_only=True)
            sheet = wb.active
            first_row = [cell.value for cell in sheet[1]]
            wb.close()
            
            # 读取Excel文件,使用第一行作为列名
            df = pd.read_excel(file_path, header=0)
            
            # 检查必需的列是否存在
            if not all(col in df.columns for col in ['证券代码', '时间']):
                print(f"跳过 {filename}: 缺少'证券代码'或'时间'列")
                continue
                
            # 筛选需要的列(只保留存在的列)
            available_cols = [col for col in required_columns if col in df.columns]
            cols_to_keep = ['证券代码', '时间'] + available_cols
            
            # 只保留需要的列
            df = df[cols_to_keep]
            
            # 合并数据
            if merged_df.empty:
                merged_df = df
            else:
                merged_df = pd.merge(
                    merged_df, 
                    df, 
                    on=['证券代码', '时间'], 
                    how='outer',
                    suffixes=('', '_dup')
                )
                
                # 处理重复列(保留第一个出现的列)
                for col in df.columns:
                    if col in merged_df.columns and f"{col}_dup" in merged_df.columns:
                        merged_df[col] = merged_df[col].combine_first(merged_df[f"{col}_dup"])
                        merged_df.drop(f"{col}_dup", axis=1, inplace=True)
                        
            print(f"成功合并: {filename}")
            
        except Exception as e:
            print(f"处理 {filename} 时出错: {str(e)}")

# 输出结果信息
print("\n合并完成!")
print(f"总记录数: {len(merged_df)}")
print(f"包含列: {list(merged_df.columns)}")

# 保存结果到新文件
merged_df.to_excel("merged_data.xlsx", index=False)
成功合并: 资产负债表-2000-2024.xlsx
成功合并: CSMAR常用变量-2000-2024.xlsx
成功合并: 上市公司基本信息年度表.xlsx
跳过 上市公司基本信息变更表2000-2024.xlsx: 缺少'证券代码'或'时间'列
成功合并: 利润表-现金流量表-2000-2024.xlsx

合并完成!
总记录数: 145874
包含列: ['证券代码', '时间', '负债合计', '资产总计', '流动负债合计', '长期负债合计', '所有者权益合计', '短期借款', '长期借款', '股权集中度1', '股权集中度9', '首次上市日期', '行业代码', '期末现金及现金等价物余额', '净利润']
import pandas as pd
import numpy as np
from datetime import datetime

# 1. 筛选时间 >= 2000 的数据
merged_df = merged_df[merged_df['时间'] >= 2000].copy()

# 2. 计算各项指标(处理分母为0的情况)
# 安全除法函数
def safe_divide(a, b):
    return np.divide(a, b, out=np.zeros_like(a, dtype=float), 
                    where=(b != 0) & (~np.isnan(b)) & (~np.isnan(a)))

# 计算各项比率
merged_df['Lev'] = safe_divide(merged_df['负债合计'], merged_df['资产总计'])
merged_df['SL'] = safe_divide(merged_df['流动负债合计'], merged_df['资产总计'])
merged_df['LL'] = safe_divide(merged_df['长期负债合计'], merged_df['资产总计'])
merged_df['SDR'] = safe_divide(merged_df['流动负债合计'], merged_df['负债合计'])
merged_df['Cash'] = safe_divide(merged_df['期末现金及现金等价物余额'], merged_df['资产总计'])
merged_df['ROA'] = safe_divide(merged_df['净利润'], merged_df['资产总计'])
merged_df['ROE'] = safe_divide(merged_df['净利润'], merged_df['所有者权益合计'])
merged_df['SLoan'] = safe_divide(merged_df['短期借款'], merged_df['资产总计'])
merged_df['LLoan'] = safe_divide(merged_df['长期借款'], merged_df['资产总计'])

# 直接赋值股权集中度
merged_df['Top1'] = merged_df['股权集中度1']
merged_df['HHI5'] = merged_df['股权集中度9']

# 计算Size = ln(资产总计),添加小常数避免log(0)
merged_df['Size'] = np.log(merged_df['资产总计'] + 1e-6)

# 3. 计算Age(公司年龄)
# 将首次上市日期转换为datetime格式
def convert_date(date_val):
    if isinstance(date_val, str) and len(date_val) == 8:
        return datetime.strptime(date_val, '%Y%m%d')
    elif isinstance(date_val, (int, float)):
        return datetime(int(date_val), 1, 1)  # 处理整数年份
    return pd.NaT

merged_df['首次上市日期'] = merged_df['首次上市日期'].apply(convert_date)

# 计算公司上市年限
today = datetime.now()
merged_df['Age'] = ((today - merged_df['首次上市日期']).dt.days / 365).fillna(0).astype(int)

# 4. 处理离群值(缩尾处理)
# 需要缩尾的变量列表
winsorize_vars = [
    'Lev', 'SL', 'LL', 'SDR', 'Cash', 'ROA', 'ROE', 
    'SLoan', 'LLoan', 'Top1', 'HHI5', 'Size', 'Age'
]

for var in winsorize_vars:
    if var in merged_df.columns:
        # 计算1%和99%分位数
        low = merged_df[var].quantile(0.01)
        high = merged_df[var].quantile(0.99)
        
        # 缩尾处理
        merged_df[var] = merged_df[var].clip(lower=low, upper=high)

# 显示处理结果
print("数据处理完成!")
print(f"处理后数据形状: {merged_df.shape}")
print(f"包含的指标: {winsorize_vars}")
print(f"时间范围: {merged_df['时间'].min()} - {merged_df['时间'].max()}")
print(f"公司上市年限范围: {merged_df['Age'].min()} - {merged_df['Age'].max()} 年")
数据处理完成!
处理后数据形状: (145874, 28)
包含的指标: ['Lev', 'SL', 'LL', 'SDR', 'Cash', 'ROA', 'ROE', 'SLoan', 'LLoan', 'Top1', 'HHI5', 'Size', 'Age']
时间范围: 2000 - 2024
公司上市年限范围: 0 - 0 年
import pandas as pd

# 定义要统计的指标列表
metrics = [
    'Lev', 'SL', 'LL', 'SDR', 'Cash', 'ROA', 'ROE', 
    'SLoan', 'LLoan', 'Top1', 'HHI5', 'Size', 'Age'
]

# 1. 按'时间'分组
grouped = merged_df.groupby('时间')

# 2. 为每个指标计算统计量
# 创建空的DataFrame存储结果
result_df = pd.DataFrame()

# 对每个指标计算统计量
for metric in metrics:
    if metric in merged_df.columns:
        # 计算各种统计量
        stat_df = grouped[metric].agg([
            ('平均值', 'mean'),
            ('中位数', 'median'),
            ('标准差', 'std'),
            ('最小值', 'min'),
            ('最大值', 'max')
        ])
        
        # 重命名列以包含指标名称
        stat_df.columns = [f"{metric}_{col}" for col in stat_df.columns]
        
        # 合并到结果DataFrame
        if result_df.empty:
            result_df = stat_df
        else:
            result_df = result_df.join(stat_df)

# 3. 打印结果表格
# 设置显示选项以展示完整数据
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 1000)
pd.set_option('display.float_format', '{:.4f}'.format)

print("="*100)
print("按时间分组的指标统计结果:")
print("="*100)
print(result_df)

# 4. 可选:保存结果到Excel文件
result_df.to_excel("time_grouped_statistics.xlsx")
print("\n结果已保存至 'time_grouped_statistics.xlsx'")

# 5. 可选:生成更易读的格式(每个指标单独表格)
print("\n\n按指标分组的详细统计:")
for metric in metrics:
    if metric in merged_df.columns:
        print("\n" + "="*50)
        print(f"{metric} 的年度统计:")
        print("="*50)
        metric_df = grouped[metric].agg(['mean', 'median', 'std', 'min', 'max'])
        metric_df.columns = ['平均值', '中位数', '标准差', '最小值', '最大值']
        print(metric_df)
====================================================================================================
按时间分组的指标统计结果:
====================================================================================================
      Lev_平均值  Lev_中位数  Lev_标准差  Lev_最小值  Lev_最大值  SL_平均值  SL_中位数  SL_标准差  SL_最小值  SL_最大值  LL_平均值  LL_中位数  LL_标准差  LL_最小值  LL_最大值  SDR_平均值  SDR_中位数  SDR_标准差  SDR_最小值  SDR_最大值  Cash_平均值  Cash_中位数  Cash_标准差  Cash_最小值  Cash_最大值  ROA_平均值  ROA_中位数  ROA_标准差  ROA_最小值  ROA_最大值  ROE_平均值  ROE_中位数  ROE_标准差  ROE_最小值  ROE_最大值  SLoan_平均值  SLoan_中位数  SLoan_标准差  SLoan_最小值  SLoan_最大值  LLoan_平均值  LLoan_中位数  LLoan_标准差  LLoan_最小值  LLoan_最大值  Top1_平均值  Top1_中位数  Top1_标准差  Top1_最小值  Top1_最大值  HHI5_平均值  HHI5_中位数  HHI5_标准差  HHI5_最小值  HHI5_最大值  Size_平均值  Size_中位数  Size_标准差  Size_最小值  Size_最大值  Age_平均值  Age_中位数  Age_标准差  Age_最小值  Age_最大值
时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
2000   0.0889   0.0000   0.1960   0.0000   0.9384  0.0759  0.0000  0.1710  0.0000  0.8289  0.0112  0.0000  0.0405  0.0000  0.3676   0.1742   0.0000   0.3557   0.0000   1.0000    0.0316    0.0000    0.0854    0.0000    0.5748   0.0069   0.0000   0.0309  -0.2173   0.1733   0.0118   0.0000   0.0680  -0.6118   0.3274     0.0330     0.0000     0.0846     0.0000     0.4217     0.0095     0.0000     0.0354     0.0000     0.3057       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   20.9439   20.8770    0.8634   18.7922   25.5963   0.0000   0.0000   0.0000        0        0
2001   0.0977   0.0000   0.2069   0.0000   0.9384  0.0828  0.0000  0.1792  0.0000  0.8289  0.0126  0.0000  0.0444  0.0000  0.3676   0.1846   0.0000   0.3621   0.0000   1.0000    0.0364    0.0000    0.0907    0.0000    0.5748   0.0045   0.0000   0.0318  -0.2173   0.1733   0.0076   0.0000   0.0705  -0.6118   0.3274     0.0375     0.0000     0.0916     0.0000     0.4217     0.0110     0.0000     0.0396     0.0000     0.3057       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   21.0155   20.9372    0.9086   18.7922   26.6102   0.0000   0.0000   0.0000        0        0
2002   0.1067   0.0000   0.2174   0.0000   0.9384  0.0911  0.0000  0.1894  0.0000  0.8289  0.0133  0.0000  0.0462  0.0000  0.3676   0.1943   0.0000   0.3694   0.0000   1.0000    0.0353    0.0000    0.0864    0.0000    0.5748   0.0035   0.0000   0.0331  -0.2173   0.1733   0.0059   0.0000   0.0763  -0.6118   0.3274     0.0399     0.0000     0.0952     0.0000     0.4217     0.0112     0.0000     0.0402     0.0000     0.3057       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   21.0789   20.9909    0.9640   18.7922   26.6412   0.0000   0.0000   0.0000        0        0
2003   0.1157   0.0000   0.2289   0.0000   0.9384  0.0979  0.0000  0.1983  0.0000  0.8289  0.0148  0.0000  0.0489  0.0000  0.3676   0.2018   0.0000   0.3735   0.0000   1.0000    0.0357    0.0000    0.0853    0.0000    0.5748   0.0045   0.0000   0.0326  -0.2173   0.1733   0.0096   0.0000   0.0705  -0.6118   0.3274     0.0436     0.0000     0.1004     0.0000     0.4217     0.0124     0.0000     0.0429     0.0000     0.3057   42.4786   41.2759   16.9773    8.2744   74.5657    0.2295    0.1979    0.1415    0.0129    0.5604   21.1775   21.1037    1.0087   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2004   0.1277   0.0000   0.2420   0.0000   0.9384  0.1079  0.0000  0.2096  0.0000  0.8289  0.0165  0.0000  0.0532  0.0000  0.3676   0.2137   0.0000   0.3804   0.0000   1.0000    0.0371    0.0000    0.0865    0.0000    0.5748   0.0045   0.0000   0.0368  -0.2173   0.1733   0.0089   0.0000   0.0848  -0.6118   0.3274     0.0462     0.0000     0.1028     0.0000     0.4217     0.0138     0.0000     0.0462     0.0000     0.3057   41.7888   39.8541   16.6441    8.2744   74.5657    0.2241    0.1887    0.1380    0.0129    0.5604   21.2251   21.1329    1.0575   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2005   0.1329   0.0000   0.2513   0.0000   0.9384  0.1126  0.0000  0.2178  0.0000  0.8289  0.0165  0.0000  0.0534  0.0000  0.3676   0.2141   0.0000   0.3816   0.0000   1.0000    0.0325    0.0000    0.0780    0.0000    0.5748   0.0021   0.0000   0.0390  -0.2173   0.1733   0.0050   0.0000   0.0928  -0.6118   0.3274     0.0453     0.0000     0.1014     0.0000     0.4217     0.0136     0.0000     0.0464     0.0000     0.3057   40.3061   37.7029   16.1135    8.2744   74.5657    0.2101    0.1726    0.1314    0.0129    0.5604   21.2723   21.1804    1.0952   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2006   0.1423   0.0000   0.2590   0.0000   0.9384  0.1195  0.0000  0.2226  0.0000  0.8289  0.0179  0.0000  0.0561  0.0000  0.3676   0.2254   0.0000   0.3882   0.0000   1.0000    0.0356    0.0000    0.0827    0.0000    0.5748   0.0062   0.0000   0.0371  -0.2173   0.1733   0.0143   0.0000   0.0860  -0.6118   0.3274     0.0450     0.0000     0.0986     0.0000     0.4217     0.0148     0.0000     0.0490     0.0000     0.3057   36.0474   33.5374   14.8700    8.2744   74.5657    0.1706    0.1397    0.1153    0.0129    0.5604   21.3349   21.2300    1.2137   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2007   0.1489   0.0000   0.2595   0.0000   0.9384  0.1226  0.0000  0.2204  0.0000  0.8289  0.0183  0.0000  0.0562  0.0000  0.3676   0.2378   0.0000   0.3922   0.0000   1.0000    0.0420    0.0000    0.0932    0.0000    0.5748   0.0121   0.0000   0.0398  -0.2173   0.1733   0.0239   0.0000   0.0879  -0.6118   0.3274     0.0442     0.0000     0.0961     0.0000     0.4217     0.0154     0.0000     0.0496     0.0000     0.3057   35.7441   33.8986   15.0713    8.2744   74.5657    0.1683    0.1410    0.1163    0.0129    0.5604   21.4913   21.3551    1.3487   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2008   0.1523   0.0000   0.2621   0.0000   0.9384  0.1247  0.0000  0.2211  0.0000  0.8289  0.0197  0.0000  0.0595  0.0000  0.3676   0.2459   0.0000   0.3967   0.0000   1.0000    0.0431    0.0000    0.0932    0.0000    0.5748   0.0075   0.0000   0.0423  -0.2173   0.1733   0.0133   0.0000   0.0964  -0.6118   0.3274     0.0439     0.0000     0.0958     0.0000     0.4217     0.0162     0.0000     0.0514     0.0000     0.3057   36.3457   34.7571   15.3350    8.2744   74.5657    0.1732    0.1459    0.1200    0.0129    0.5604   21.5479   21.3960    1.3864   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2009   0.1611   0.0000   0.2662   0.0000   0.9384  0.1272  0.0000  0.2182  0.0000  0.8289  0.0242  0.0000  0.0680  0.0000  0.3676   0.2598   0.0000   0.3986   0.0000   1.0000    0.0587    0.0000    0.1203    0.0000    0.5748   0.0112   0.0000   0.0422  -0.2173   0.1733   0.0217   0.0000   0.0906  -0.6118   0.3274     0.0402     0.0000     0.0890     0.0000     0.4217     0.0197     0.0000     0.0578     0.0000     0.3057   36.2315   33.9747   15.4842    8.2744   74.5657    0.1722    0.1428    0.1226    0.0129    0.5604   21.6160   21.4406    1.4466   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2010   0.1757   0.0000   0.2679   0.0000   0.9384  0.1389  0.0000  0.2193  0.0000  0.8289  0.0259  0.0000  0.0700  0.0000  0.3676   0.3127   0.0000   0.4203   0.0000   1.0000    0.0844    0.0000    0.1520    0.0000    0.5748   0.0184   0.0000   0.0411  -0.2173   0.1733   0.0335   0.0000   0.0849  -0.6118   0.3274     0.0400     0.0000     0.0874     0.0000     0.4217     0.0209     0.0000     0.0594     0.0000     0.3057   36.2102   34.2386   15.5565    8.2744   74.5657    0.1743    0.1471    0.1235    0.0129    0.5604   21.6827   21.4765    1.4304   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2011   0.1860   0.0000   0.2682   0.0000   0.9384  0.1484  0.0000  0.2204  0.0000  0.8289  0.0261  0.0000  0.0694  0.0000  0.3676   0.3495   0.0000   0.4316   0.0000   1.0000    0.0907    0.0000    0.1519    0.0000    0.5748   0.0190   0.0000   0.0433  -0.2173   0.1733   0.0330   0.0000   0.0887  -0.6118   0.3274     0.0440     0.0000     0.0901     0.0000     0.4217     0.0194     0.0000     0.0559     0.0000     0.3057   36.1617   34.3301   15.4639    8.2744   74.5657    0.1748    0.1499    0.1226    0.0129    0.5604   21.7769   21.5709    1.4129   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2012   0.1952   0.0000   0.2690   0.0000   0.9384  0.1533  0.0000  0.2183  0.0000  0.8289  0.0292  0.0000  0.0723  0.0000  0.3676   0.3619   0.0000   0.4297   0.0000   1.0000    0.0878    0.0000    0.1420    0.0000    0.5748   0.0168   0.0000   0.0405  -0.2173   0.1733   0.0295   0.0000   0.0794  -0.6118   0.3274     0.0455     0.0000     0.0910     0.0000     0.4217     0.0192     0.0000     0.0549     0.0000     0.3057   36.3319   34.5098   15.4586    8.2744   74.5657    0.1764    0.1486    0.1231    0.0129    0.5604   21.8578   21.6565    1.4048   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2013   0.2032   0.0000   0.2705   0.0000   0.9384  0.1584  0.0000  0.2178  0.0000  0.8289  0.0314  0.0000  0.0736  0.0000  0.3676   0.3661   0.0000   0.4267   0.0000   1.0000    0.0763    0.0000    0.1220    0.0000    0.5748   0.0168   0.0000   0.0414  -0.2173   0.1733   0.0287   0.0000   0.0867  -0.6118   0.3274     0.0471     0.0000     0.0910     0.0000     0.4217     0.0204     0.0000     0.0565     0.0000     0.3057   35.8246   33.9492   15.4485    8.2744   74.5657    0.1715    0.1410    0.1220    0.0129    0.5604   21.9543   21.7591    1.4178   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2014   0.2157   0.0000   0.2715   0.0000   0.9384  0.1679  0.0000  0.2185  0.0000  0.8289  0.0322  0.0000  0.0736  0.0000  0.3676   0.3869   0.0000   0.4275   0.0000   1.0000    0.0730    0.0000    0.1161    0.0000    0.5748   0.0175   0.0000   0.0421  -0.2173   0.1733   0.0296   0.0000   0.0889  -0.6118   0.3274     0.0476     0.0000     0.0879     0.0000     0.4217     0.0205     0.0000     0.0558     0.0000     0.3057   35.1844   33.2892   15.1536    8.2744   74.5657    0.1653    0.1347    0.1187    0.0129    0.5604   22.0098   21.8438    1.4550   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2015   0.2309   0.1214   0.2681   0.0000   0.9384  0.1798  0.0837  0.2153  0.0000  0.8289  0.0344  0.0000  0.0756  0.0000  0.3676   0.4295   0.4229   0.4305   0.0000   1.0000    0.0840    0.0279    0.1196    0.0000    0.5748   0.0181   0.0000   0.0466  -0.2173   0.1733   0.0290   0.0000   0.0985  -0.6118   0.3274     0.0501     0.0000     0.0883     0.0000     0.4217     0.0210     0.0000     0.0552     0.0000     0.3057   34.3022   32.3816   14.7945    8.2744   74.5657    0.1589    0.1309    0.1141    0.0129    0.5604   22.0226   21.8990    1.5138   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2016   0.2475   0.1859   0.2645   0.0000   0.9384  0.1917  0.1363  0.2113  0.0000  0.8289  0.0365  0.0000  0.0767  0.0000  0.3676   0.4754   0.6084   0.4285   0.0000   1.0000    0.0963    0.0538    0.1250    0.0000    0.5748   0.0245   0.0068   0.0473  -0.2173   0.1733   0.0400   0.0144   0.0941  -0.6118   0.3274     0.0475     0.0000     0.0824     0.0000     0.4217     0.0214     0.0000     0.0541     0.0000     0.3057   33.5103   31.4033   14.6316    8.2744   74.5657    0.1538    0.1251    0.1109    0.0129    0.5604   22.0736   21.9816    1.5629   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2017   0.2741   0.2383   0.2622   0.0000   0.9384  0.2142  0.1855  0.2109  0.0000  0.8289  0.0393  0.0000  0.0772  0.0000  0.3676   0.5345   0.7239   0.4211   0.0000   1.0000    0.1021    0.0666    0.1212    0.0000    0.5748   0.0297   0.0170   0.0500  -0.2173   0.1733   0.0498   0.0373   0.0963  -0.6118   0.3274     0.0553     0.0000     0.0875     0.0000     0.4217     0.0238     0.0000     0.0556     0.0000     0.3057   33.5683   31.4047   14.4857    8.2744   74.5657    0.1555    0.1288    0.1099    0.0129    0.5604   22.0994   21.9898    1.5535   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2018   0.2934   0.2728   0.2683   0.0000   0.9384  0.2301  0.2085  0.2191  0.0000  0.8289  0.0400  0.0000  0.0757  0.0000  0.3676   0.5485   0.7469   0.4180   0.0000   1.0000    0.0953    0.0651    0.1121    0.0000    0.5748   0.0219   0.0128   0.0637  -0.2173   0.1733   0.0329   0.0300   0.1372  -0.6118   0.3274     0.0602     0.0031     0.0896     0.0000     0.4217     0.0247     0.0000     0.0555     0.0000     0.3057   33.3975   31.0586   14.4908    8.2744   74.5657    0.1545    0.1261    0.1100    0.0129    0.5604   22.1755   22.0455    1.5673   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2019   0.3085   0.2933   0.2689   0.0000   0.9384  0.2397  0.2174  0.2196  0.0000  0.8289  0.0424  0.0000  0.0771  0.0000  0.3676   0.5704   0.7565   0.4059   0.0000   1.0000    0.1029    0.0697    0.1189    0.0000    0.5748   0.0229   0.0158   0.0659  -0.2173   0.1733   0.0354   0.0369   0.1410  -0.6118   0.3274     0.0602     0.0071     0.0901     0.0000     0.4217     0.0265     0.0000     0.0567     0.0000     0.3057   32.8718   30.2994   14.6041    8.2744   74.5657    0.1513    0.1195    0.1107    0.0129    0.5604   22.2027   22.0435    1.5642   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2020   0.3346   0.3254   0.2598   0.0000   0.9384  0.2596  0.2459  0.2122  0.0000  0.8289  0.0461  0.0000  0.0801  0.0000  0.3676   0.6340   0.8068   0.3781   0.0000   1.0000    0.1320    0.0975    0.1344    0.0000    0.5748   0.0274   0.0243   0.0676  -0.2173   0.1733   0.0417   0.0510   0.1435  -0.6118   0.3274     0.0603     0.0158     0.0870     0.0000     0.4217     0.0296     0.0000     0.0606     0.0000     0.3057   32.3871   29.9751   14.6354    8.2744   74.5657    0.1482    0.1160    0.1109    0.0129    0.5604   22.1986   21.9821    1.5351   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2021   0.3658   0.3599   0.2502   0.0000   0.9384  0.2795  0.2636  0.2047  0.0000  0.8289  0.0565  0.0134  0.0853  0.0000  0.3676   0.6803   0.8221   0.3359   0.0000   1.0000    0.1422    0.1088    0.1320    0.0000    0.5748   0.0318   0.0326   0.0685  -0.2173   0.1733   0.0470   0.0636   0.1482  -0.6118   0.3274     0.0588     0.0189     0.0838     0.0000     0.4217     0.0315     0.0000     0.0615     0.0000     0.3057   32.2697   29.9000   14.7268    8.2744   74.5657    0.1475    0.1153    0.1114    0.0129    0.5604   22.2486   22.0020    1.5105   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2022   0.3779   0.3673   0.2412   0.0000   0.9384  0.2850  0.2680  0.1963  0.0000  0.8289  0.0624  0.0188  0.0873  0.0000  0.3676   0.7103   0.8242   0.3029   0.0000   1.0000    0.1571    0.1224    0.1366    0.0000    0.5748   0.0249   0.0280   0.0684  -0.2173   0.1733   0.0343   0.0532   0.1481  -0.6118   0.3274     0.0600     0.0245     0.0823     0.0000     0.4217     0.0363     0.0000     0.0643     0.0000     0.3057   32.0465   29.6882   14.6861    8.2744   74.5657    0.1457    0.1141    0.1108    0.0129    0.5604   22.3020   22.0442    1.4761   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2023   0.3853   0.3728   0.2350   0.0000   0.9384  0.2848  0.2640  0.1892  0.0000  0.8289  0.0697  0.0258  0.0918  0.0000  0.3676   0.7201   0.8161   0.2808   0.0000   1.0000    0.1610    0.1244    0.1352    0.0000    0.5748   0.0206   0.0246   0.0631  -0.2173   0.1733   0.0241   0.0460   0.1421  -0.6118   0.3274     0.0585     0.0252     0.0794     0.0000     0.4217     0.0418     0.0024     0.0690     0.0000     0.3057   31.9458   29.5243   14.8259    8.2744   74.5657    0.1450    0.1131    0.1118    0.0129    0.5604   22.3350   22.0580    1.4517   18.7922   26.9180   0.0000   0.0000   0.0000        0        0
2024   0.3961   0.3861   0.2353   0.0000   0.9384  0.2944  0.2777  0.1894  0.0000  0.8289  0.0708  0.0281  0.0925  0.0000  0.3676   0.7298   0.8231   0.2733   0.0000   1.0000    0.1445    0.1136    0.1214    0.0000    0.5748   0.0139   0.0197   0.0657  -0.2173   0.1733   0.0099   0.0383   0.1534  -0.6118   0.3274     0.0610     0.0254     0.0812     0.0000     0.4217     0.0429     0.0036     0.0696     0.0000     0.3057       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN       NaN   22.3424   22.0585    1.4473   18.7922   26.9180   0.0000   0.0000   0.0000        0        0

结果已保存至 'time_grouped_statistics.xlsx'


按指标分组的详细统计:

==================================================
Lev 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000 0.0889 0.0000 0.1960 0.0000 0.9384
2001 0.0977 0.0000 0.2069 0.0000 0.9384
2002 0.1067 0.0000 0.2174 0.0000 0.9384
2003 0.1157 0.0000 0.2289 0.0000 0.9384
2004 0.1277 0.0000 0.2420 0.0000 0.9384
2005 0.1329 0.0000 0.2513 0.0000 0.9384
2006 0.1423 0.0000 0.2590 0.0000 0.9384
2007 0.1489 0.0000 0.2595 0.0000 0.9384
2008 0.1523 0.0000 0.2621 0.0000 0.9384
2009 0.1611 0.0000 0.2662 0.0000 0.9384
2010 0.1757 0.0000 0.2679 0.0000 0.9384
2011 0.1860 0.0000 0.2682 0.0000 0.9384
2012 0.1952 0.0000 0.2690 0.0000 0.9384
2013 0.2032 0.0000 0.2705 0.0000 0.9384
2014 0.2157 0.0000 0.2715 0.0000 0.9384
2015 0.2309 0.1214 0.2681 0.0000 0.9384
2016 0.2475 0.1859 0.2645 0.0000 0.9384
2017 0.2741 0.2383 0.2622 0.0000 0.9384
2018 0.2934 0.2728 0.2683 0.0000 0.9384
2019 0.3085 0.2933 0.2689 0.0000 0.9384
2020 0.3346 0.3254 0.2598 0.0000 0.9384
2021 0.3658 0.3599 0.2502 0.0000 0.9384
2022 0.3779 0.3673 0.2412 0.0000 0.9384
2023 0.3853 0.3728 0.2350 0.0000 0.9384
2024 0.3961 0.3861 0.2353 0.0000 0.9384

==================================================
SL 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000 0.0759 0.0000 0.1710 0.0000 0.8289
2001 0.0828 0.0000 0.1792 0.0000 0.8289
2002 0.0911 0.0000 0.1894 0.0000 0.8289
2003 0.0979 0.0000 0.1983 0.0000 0.8289
2004 0.1079 0.0000 0.2096 0.0000 0.8289
2005 0.1126 0.0000 0.2178 0.0000 0.8289
2006 0.1195 0.0000 0.2226 0.0000 0.8289
2007 0.1226 0.0000 0.2204 0.0000 0.8289
2008 0.1247 0.0000 0.2211 0.0000 0.8289
2009 0.1272 0.0000 0.2182 0.0000 0.8289
2010 0.1389 0.0000 0.2193 0.0000 0.8289
2011 0.1484 0.0000 0.2204 0.0000 0.8289
2012 0.1533 0.0000 0.2183 0.0000 0.8289
2013 0.1584 0.0000 0.2178 0.0000 0.8289
2014 0.1679 0.0000 0.2185 0.0000 0.8289
2015 0.1798 0.0837 0.2153 0.0000 0.8289
2016 0.1917 0.1363 0.2113 0.0000 0.8289
2017 0.2142 0.1855 0.2109 0.0000 0.8289
2018 0.2301 0.2085 0.2191 0.0000 0.8289
2019 0.2397 0.2174 0.2196 0.0000 0.8289
2020 0.2596 0.2459 0.2122 0.0000 0.8289
2021 0.2795 0.2636 0.2047 0.0000 0.8289
2022 0.2850 0.2680 0.1963 0.0000 0.8289
2023 0.2848 0.2640 0.1892 0.0000 0.8289
2024 0.2944 0.2777 0.1894 0.0000 0.8289

==================================================
LL 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000 0.0112 0.0000 0.0405 0.0000 0.3676
2001 0.0126 0.0000 0.0444 0.0000 0.3676
2002 0.0133 0.0000 0.0462 0.0000 0.3676
2003 0.0148 0.0000 0.0489 0.0000 0.3676
2004 0.0165 0.0000 0.0532 0.0000 0.3676
2005 0.0165 0.0000 0.0534 0.0000 0.3676
2006 0.0179 0.0000 0.0561 0.0000 0.3676
2007 0.0183 0.0000 0.0562 0.0000 0.3676
2008 0.0197 0.0000 0.0595 0.0000 0.3676
2009 0.0242 0.0000 0.0680 0.0000 0.3676
2010 0.0259 0.0000 0.0700 0.0000 0.3676
2011 0.0261 0.0000 0.0694 0.0000 0.3676
2012 0.0292 0.0000 0.0723 0.0000 0.3676
2013 0.0314 0.0000 0.0736 0.0000 0.3676
2014 0.0322 0.0000 0.0736 0.0000 0.3676
2015 0.0344 0.0000 0.0756 0.0000 0.3676
2016 0.0365 0.0000 0.0767 0.0000 0.3676
2017 0.0393 0.0000 0.0772 0.0000 0.3676
2018 0.0400 0.0000 0.0757 0.0000 0.3676
2019 0.0424 0.0000 0.0771 0.0000 0.3676
2020 0.0461 0.0000 0.0801 0.0000 0.3676
2021 0.0565 0.0134 0.0853 0.0000 0.3676
2022 0.0624 0.0188 0.0873 0.0000 0.3676
2023 0.0697 0.0258 0.0918 0.0000 0.3676
2024 0.0708 0.0281 0.0925 0.0000 0.3676

==================================================
SDR 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000 0.1742 0.0000 0.3557 0.0000 1.0000
2001 0.1846 0.0000 0.3621 0.0000 1.0000
2002 0.1943 0.0000 0.3694 0.0000 1.0000
2003 0.2018 0.0000 0.3735 0.0000 1.0000
2004 0.2137 0.0000 0.3804 0.0000 1.0000
2005 0.2141 0.0000 0.3816 0.0000 1.0000
2006 0.2254 0.0000 0.3882 0.0000 1.0000
2007 0.2378 0.0000 0.3922 0.0000 1.0000
2008 0.2459 0.0000 0.3967 0.0000 1.0000
2009 0.2598 0.0000 0.3986 0.0000 1.0000
2010 0.3127 0.0000 0.4203 0.0000 1.0000
2011 0.3495 0.0000 0.4316 0.0000 1.0000
2012 0.3619 0.0000 0.4297 0.0000 1.0000
2013 0.3661 0.0000 0.4267 0.0000 1.0000
2014 0.3869 0.0000 0.4275 0.0000 1.0000
2015 0.4295 0.4229 0.4305 0.0000 1.0000
2016 0.4754 0.6084 0.4285 0.0000 1.0000
2017 0.5345 0.7239 0.4211 0.0000 1.0000
2018 0.5485 0.7469 0.4180 0.0000 1.0000
2019 0.5704 0.7565 0.4059 0.0000 1.0000
2020 0.6340 0.8068 0.3781 0.0000 1.0000
2021 0.6803 0.8221 0.3359 0.0000 1.0000
2022 0.7103 0.8242 0.3029 0.0000 1.0000
2023 0.7201 0.8161 0.2808 0.0000 1.0000
2024 0.7298 0.8231 0.2733 0.0000 1.0000

==================================================
Cash 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000 0.0316 0.0000 0.0854 0.0000 0.5748
2001 0.0364 0.0000 0.0907 0.0000 0.5748
2002 0.0353 0.0000 0.0864 0.0000 0.5748
2003 0.0357 0.0000 0.0853 0.0000 0.5748
2004 0.0371 0.0000 0.0865 0.0000 0.5748
2005 0.0325 0.0000 0.0780 0.0000 0.5748
2006 0.0356 0.0000 0.0827 0.0000 0.5748
2007 0.0420 0.0000 0.0932 0.0000 0.5748
2008 0.0431 0.0000 0.0932 0.0000 0.5748
2009 0.0587 0.0000 0.1203 0.0000 0.5748
2010 0.0844 0.0000 0.1520 0.0000 0.5748
2011 0.0907 0.0000 0.1519 0.0000 0.5748
2012 0.0878 0.0000 0.1420 0.0000 0.5748
2013 0.0763 0.0000 0.1220 0.0000 0.5748
2014 0.0730 0.0000 0.1161 0.0000 0.5748
2015 0.0840 0.0279 0.1196 0.0000 0.5748
2016 0.0963 0.0538 0.1250 0.0000 0.5748
2017 0.1021 0.0666 0.1212 0.0000 0.5748
2018 0.0953 0.0651 0.1121 0.0000 0.5748
2019 0.1029 0.0697 0.1189 0.0000 0.5748
2020 0.1320 0.0975 0.1344 0.0000 0.5748
2021 0.1422 0.1088 0.1320 0.0000 0.5748
2022 0.1571 0.1224 0.1366 0.0000 0.5748
2023 0.1610 0.1244 0.1352 0.0000 0.5748
2024 0.1445 0.1136 0.1214 0.0000 0.5748

==================================================
ROA 的年度统计:
==================================================
        平均值    中位数    标准差     最小值    最大值
时间                                      
2000 0.0069 0.0000 0.0309 -0.2173 0.1733
2001 0.0045 0.0000 0.0318 -0.2173 0.1733
2002 0.0035 0.0000 0.0331 -0.2173 0.1733
2003 0.0045 0.0000 0.0326 -0.2173 0.1733
2004 0.0045 0.0000 0.0368 -0.2173 0.1733
2005 0.0021 0.0000 0.0390 -0.2173 0.1733
2006 0.0062 0.0000 0.0371 -0.2173 0.1733
2007 0.0121 0.0000 0.0398 -0.2173 0.1733
2008 0.0075 0.0000 0.0423 -0.2173 0.1733
2009 0.0112 0.0000 0.0422 -0.2173 0.1733
2010 0.0184 0.0000 0.0411 -0.2173 0.1733
2011 0.0190 0.0000 0.0433 -0.2173 0.1733
2012 0.0168 0.0000 0.0405 -0.2173 0.1733
2013 0.0168 0.0000 0.0414 -0.2173 0.1733
2014 0.0175 0.0000 0.0421 -0.2173 0.1733
2015 0.0181 0.0000 0.0466 -0.2173 0.1733
2016 0.0245 0.0068 0.0473 -0.2173 0.1733
2017 0.0297 0.0170 0.0500 -0.2173 0.1733
2018 0.0219 0.0128 0.0637 -0.2173 0.1733
2019 0.0229 0.0158 0.0659 -0.2173 0.1733
2020 0.0274 0.0243 0.0676 -0.2173 0.1733
2021 0.0318 0.0326 0.0685 -0.2173 0.1733
2022 0.0249 0.0280 0.0684 -0.2173 0.1733
2023 0.0206 0.0246 0.0631 -0.2173 0.1733
2024 0.0139 0.0197 0.0657 -0.2173 0.1733

==================================================
ROE 的年度统计:
==================================================
        平均值    中位数    标准差     最小值    最大值
时间                                      
2000 0.0118 0.0000 0.0680 -0.6118 0.3274
2001 0.0076 0.0000 0.0705 -0.6118 0.3274
2002 0.0059 0.0000 0.0763 -0.6118 0.3274
2003 0.0096 0.0000 0.0705 -0.6118 0.3274
2004 0.0089 0.0000 0.0848 -0.6118 0.3274
2005 0.0050 0.0000 0.0928 -0.6118 0.3274
2006 0.0143 0.0000 0.0860 -0.6118 0.3274
2007 0.0239 0.0000 0.0879 -0.6118 0.3274
2008 0.0133 0.0000 0.0964 -0.6118 0.3274
2009 0.0217 0.0000 0.0906 -0.6118 0.3274
2010 0.0335 0.0000 0.0849 -0.6118 0.3274
2011 0.0330 0.0000 0.0887 -0.6118 0.3274
2012 0.0295 0.0000 0.0794 -0.6118 0.3274
2013 0.0287 0.0000 0.0867 -0.6118 0.3274
2014 0.0296 0.0000 0.0889 -0.6118 0.3274
2015 0.0290 0.0000 0.0985 -0.6118 0.3274
2016 0.0400 0.0144 0.0941 -0.6118 0.3274
2017 0.0498 0.0373 0.0963 -0.6118 0.3274
2018 0.0329 0.0300 0.1372 -0.6118 0.3274
2019 0.0354 0.0369 0.1410 -0.6118 0.3274
2020 0.0417 0.0510 0.1435 -0.6118 0.3274
2021 0.0470 0.0636 0.1482 -0.6118 0.3274
2022 0.0343 0.0532 0.1481 -0.6118 0.3274
2023 0.0241 0.0460 0.1421 -0.6118 0.3274
2024 0.0099 0.0383 0.1534 -0.6118 0.3274

==================================================
SLoan 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000 0.0330 0.0000 0.0846 0.0000 0.4217
2001 0.0375 0.0000 0.0916 0.0000 0.4217
2002 0.0399 0.0000 0.0952 0.0000 0.4217
2003 0.0436 0.0000 0.1004 0.0000 0.4217
2004 0.0462 0.0000 0.1028 0.0000 0.4217
2005 0.0453 0.0000 0.1014 0.0000 0.4217
2006 0.0450 0.0000 0.0986 0.0000 0.4217
2007 0.0442 0.0000 0.0961 0.0000 0.4217
2008 0.0439 0.0000 0.0958 0.0000 0.4217
2009 0.0402 0.0000 0.0890 0.0000 0.4217
2010 0.0400 0.0000 0.0874 0.0000 0.4217
2011 0.0440 0.0000 0.0901 0.0000 0.4217
2012 0.0455 0.0000 0.0910 0.0000 0.4217
2013 0.0471 0.0000 0.0910 0.0000 0.4217
2014 0.0476 0.0000 0.0879 0.0000 0.4217
2015 0.0501 0.0000 0.0883 0.0000 0.4217
2016 0.0475 0.0000 0.0824 0.0000 0.4217
2017 0.0553 0.0000 0.0875 0.0000 0.4217
2018 0.0602 0.0031 0.0896 0.0000 0.4217
2019 0.0602 0.0071 0.0901 0.0000 0.4217
2020 0.0603 0.0158 0.0870 0.0000 0.4217
2021 0.0588 0.0189 0.0838 0.0000 0.4217
2022 0.0600 0.0245 0.0823 0.0000 0.4217
2023 0.0585 0.0252 0.0794 0.0000 0.4217
2024 0.0610 0.0254 0.0812 0.0000 0.4217

==================================================
LLoan 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000 0.0095 0.0000 0.0354 0.0000 0.3057
2001 0.0110 0.0000 0.0396 0.0000 0.3057
2002 0.0112 0.0000 0.0402 0.0000 0.3057
2003 0.0124 0.0000 0.0429 0.0000 0.3057
2004 0.0138 0.0000 0.0462 0.0000 0.3057
2005 0.0136 0.0000 0.0464 0.0000 0.3057
2006 0.0148 0.0000 0.0490 0.0000 0.3057
2007 0.0154 0.0000 0.0496 0.0000 0.3057
2008 0.0162 0.0000 0.0514 0.0000 0.3057
2009 0.0197 0.0000 0.0578 0.0000 0.3057
2010 0.0209 0.0000 0.0594 0.0000 0.3057
2011 0.0194 0.0000 0.0559 0.0000 0.3057
2012 0.0192 0.0000 0.0549 0.0000 0.3057
2013 0.0204 0.0000 0.0565 0.0000 0.3057
2014 0.0205 0.0000 0.0558 0.0000 0.3057
2015 0.0210 0.0000 0.0552 0.0000 0.3057
2016 0.0214 0.0000 0.0541 0.0000 0.3057
2017 0.0238 0.0000 0.0556 0.0000 0.3057
2018 0.0247 0.0000 0.0555 0.0000 0.3057
2019 0.0265 0.0000 0.0567 0.0000 0.3057
2020 0.0296 0.0000 0.0606 0.0000 0.3057
2021 0.0315 0.0000 0.0615 0.0000 0.3057
2022 0.0363 0.0000 0.0643 0.0000 0.3057
2023 0.0418 0.0024 0.0690 0.0000 0.3057
2024 0.0429 0.0036 0.0696 0.0000 0.3057

==================================================
Top1 的年度统计:
==================================================
         平均值     中位数     标准差    最小值     最大值
时间                                         
2000     NaN     NaN     NaN    NaN     NaN
2001     NaN     NaN     NaN    NaN     NaN
2002     NaN     NaN     NaN    NaN     NaN
2003 42.4786 41.2759 16.9773 8.2744 74.5657
2004 41.7888 39.8541 16.6441 8.2744 74.5657
2005 40.3061 37.7029 16.1135 8.2744 74.5657
2006 36.0474 33.5374 14.8700 8.2744 74.5657
2007 35.7441 33.8986 15.0713 8.2744 74.5657
2008 36.3457 34.7571 15.3350 8.2744 74.5657
2009 36.2315 33.9747 15.4842 8.2744 74.5657
2010 36.2102 34.2386 15.5565 8.2744 74.5657
2011 36.1617 34.3301 15.4639 8.2744 74.5657
2012 36.3319 34.5098 15.4586 8.2744 74.5657
2013 35.8246 33.9492 15.4485 8.2744 74.5657
2014 35.1844 33.2892 15.1536 8.2744 74.5657
2015 34.3022 32.3816 14.7945 8.2744 74.5657
2016 33.5103 31.4033 14.6316 8.2744 74.5657
2017 33.5683 31.4047 14.4857 8.2744 74.5657
2018 33.3975 31.0586 14.4908 8.2744 74.5657
2019 32.8718 30.2994 14.6041 8.2744 74.5657
2020 32.3871 29.9751 14.6354 8.2744 74.5657
2021 32.2697 29.9000 14.7268 8.2744 74.5657
2022 32.0465 29.6882 14.6861 8.2744 74.5657
2023 31.9458 29.5243 14.8259 8.2744 74.5657
2024     NaN     NaN     NaN    NaN     NaN

==================================================
HHI5 的年度统计:
==================================================
        平均值    中位数    标准差    最小值    最大值
时间                                     
2000    NaN    NaN    NaN    NaN    NaN
2001    NaN    NaN    NaN    NaN    NaN
2002    NaN    NaN    NaN    NaN    NaN
2003 0.2295 0.1979 0.1415 0.0129 0.5604
2004 0.2241 0.1887 0.1380 0.0129 0.5604
2005 0.2101 0.1726 0.1314 0.0129 0.5604
2006 0.1706 0.1397 0.1153 0.0129 0.5604
2007 0.1683 0.1410 0.1163 0.0129 0.5604
2008 0.1732 0.1459 0.1200 0.0129 0.5604
2009 0.1722 0.1428 0.1226 0.0129 0.5604
2010 0.1743 0.1471 0.1235 0.0129 0.5604
2011 0.1748 0.1499 0.1226 0.0129 0.5604
2012 0.1764 0.1486 0.1231 0.0129 0.5604
2013 0.1715 0.1410 0.1220 0.0129 0.5604
2014 0.1653 0.1347 0.1187 0.0129 0.5604
2015 0.1589 0.1309 0.1141 0.0129 0.5604
2016 0.1538 0.1251 0.1109 0.0129 0.5604
2017 0.1555 0.1288 0.1099 0.0129 0.5604
2018 0.1545 0.1261 0.1100 0.0129 0.5604
2019 0.1513 0.1195 0.1107 0.0129 0.5604
2020 0.1482 0.1160 0.1109 0.0129 0.5604
2021 0.1475 0.1153 0.1114 0.0129 0.5604
2022 0.1457 0.1141 0.1108 0.0129 0.5604
2023 0.1450 0.1131 0.1118 0.0129 0.5604
2024    NaN    NaN    NaN    NaN    NaN

==================================================
Size 的年度统计:
==================================================
         平均值     中位数    标准差     最小值     最大值
时间                                         
2000 20.9439 20.8770 0.8634 18.7922 25.5963
2001 21.0155 20.9372 0.9086 18.7922 26.6102
2002 21.0789 20.9909 0.9640 18.7922 26.6412
2003 21.1775 21.1037 1.0087 18.7922 26.9180
2004 21.2251 21.1329 1.0575 18.7922 26.9180
2005 21.2723 21.1804 1.0952 18.7922 26.9180
2006 21.3349 21.2300 1.2137 18.7922 26.9180
2007 21.4913 21.3551 1.3487 18.7922 26.9180
2008 21.5479 21.3960 1.3864 18.7922 26.9180
2009 21.6160 21.4406 1.4466 18.7922 26.9180
2010 21.6827 21.4765 1.4304 18.7922 26.9180
2011 21.7769 21.5709 1.4129 18.7922 26.9180
2012 21.8578 21.6565 1.4048 18.7922 26.9180
2013 21.9543 21.7591 1.4178 18.7922 26.9180
2014 22.0098 21.8438 1.4550 18.7922 26.9180
2015 22.0226 21.8990 1.5138 18.7922 26.9180
2016 22.0736 21.9816 1.5629 18.7922 26.9180
2017 22.0994 21.9898 1.5535 18.7922 26.9180
2018 22.1755 22.0455 1.5673 18.7922 26.9180
2019 22.2027 22.0435 1.5642 18.7922 26.9180
2020 22.1986 21.9821 1.5351 18.7922 26.9180
2021 22.2486 22.0020 1.5105 18.7922 26.9180
2022 22.3020 22.0442 1.4761 18.7922 26.9180
2023 22.3350 22.0580 1.4517 18.7922 26.9180
2024 22.3424 22.0585 1.4473 18.7922 26.9180

==================================================
Age 的年度统计:
==================================================
        平均值    中位数    标准差  最小值  最大值
时间                                 
2000 0.0000 0.0000 0.0000    0    0
2001 0.0000 0.0000 0.0000    0    0
2002 0.0000 0.0000 0.0000    0    0
2003 0.0000 0.0000 0.0000    0    0
2004 0.0000 0.0000 0.0000    0    0
2005 0.0000 0.0000 0.0000    0    0
2006 0.0000 0.0000 0.0000    0    0
2007 0.0000 0.0000 0.0000    0    0
2008 0.0000 0.0000 0.0000    0    0
2009 0.0000 0.0000 0.0000    0    0
2010 0.0000 0.0000 0.0000    0    0
2011 0.0000 0.0000 0.0000    0    0
2012 0.0000 0.0000 0.0000    0    0
2013 0.0000 0.0000 0.0000    0    0
2014 0.0000 0.0000 0.0000    0    0
2015 0.0000 0.0000 0.0000    0    0
2016 0.0000 0.0000 0.0000    0    0
2017 0.0000 0.0000 0.0000    0    0
2018 0.0000 0.0000 0.0000    0    0
2019 0.0000 0.0000 0.0000    0    0
2020 0.0000 0.0000 0.0000    0    0
2021 0.0000 0.0000 0.0000    0    0
2022 0.0000 0.0000 0.0000    0    0
2023 0.0000 0.0000 0.0000    0    0
2024 0.0000 0.0000 0.0000    0    0
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import matplotlib.font_manager as fm
import numpy as np
from datetime import datetime
import os

# macOS 中文显示解决方案
# 1. 检查并设置中文字体
try:
    # 尝试查找 macOS 系统自带的中文字体
    font_names = ['Songti SC', 'STHeiti', 'PingFang SC', 'Hiragino Sans GB']
    available_fonts = [f.name for f in fm.fontManager.ttflist]
    
    # 寻找可用的中文字体
    chinese_font = None
    for font in font_names:
        if font in available_fonts:
            chinese_font = font
            break
    
    # 如果找到可用字体,设置matplotlib使用它
    if chinese_font:
        plt.rcParams['font.sans-serif'] = [chinese_font]
        print(f"使用中文字体: {chinese_font}")
    else:
        # 如果找不到系统字体,尝试安装并使用SimHei字体
        print("未找到系统自带中文字体,尝试安装SimHei...")
        try:
            # 安装SimHei字体
            !pip install fonttools
            !wget https://github.com/stylishzhang/simhei-font/raw/master/simhei.ttf -O simhei.ttf
            font_path = os.path.join(os.getcwd(), 'simhei.ttf')
            fm.fontManager.addfont(font_path)
            plt.rcParams['font.sans-serif'] = ['SimHei']
            print("成功安装并使用SimHei字体")
        except:
            print("无法安装SimHei字体,使用英文标题")
            USE_CHINESE = False
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
except:
    print("字体设置失败,使用英文标题")
    USE_CHINESE = False

# 2. 设置标题和标签的函数,根据情况使用中文或英文
def set_title(title_chinese, title_english):
    if 'USE_CHINESE' in globals() and not USE_CHINESE:
        plt.title(title_english, fontsize=7)  # 减小标题字体
    else:
        plt.title(title_chinese, fontsize=7)  # 减小标题字体

def set_labels(xlabel_chinese, xlabel_english, ylabel_chinese, ylabel_english):
    if 'USE_CHINESE' in globals() and not USE_CHINESE:
        plt.xlabel(xlabel_english, fontsize=6)  # 减小坐标轴标签字体
        plt.ylabel(ylabel_english, fontsize=6)  # 减小坐标轴标签字体
    else:
        plt.xlabel(xlabel_chinese, fontsize=6)  # 减小坐标轴标签字体
        plt.ylabel(ylabel_chinese, fontsize=6)  # 减小坐标轴标签字体

# 读取第三步分组统计结果数据
input_path = '/Users/wanshiqing/Desktop/python_code/time_grouped_statistics.xlsx'
df = pd.read_excel(input_path)

# 确保时间列是整数类型
df['时间'] = df['时间'].astype(int)

# 按时间排序
df = df.sort_values('时间')  # 确保使用正确的中文列名

# 1. 绘制时序图B1:Lev的均值和中位数
plt.figure(figsize=(4, 3))
plt.plot(df['时间'], df['Lev_平均值'], label='Lev Mean' if 'USE_CHINESE' in globals() and not USE_CHINESE else '总负债率均值', 
         marker='o', markersize=3, linewidth=1, color='#1f77b4')  # 减小标记大小和线宽
plt.plot(df['时间'], df['Lev_中位数'], label='Lev Median' if 'USE_CHINESE' in globals() and not USE_CHINESE else '总负债率中位数', 
         marker='s', markersize=3, linestyle='--', linewidth=1, color='#ff7f0e')  # 减小标记大小和线宽

# 设置标题和标签
set_title(f'总负债率趋势',  # 简化标题文字
          f'Leverage Ratio Trend')  # 简化标题文字
set_labels('年份', 'Year', '总负债率', 'Leverage Ratio')

# 设置网格和刻度
plt.grid(True, linestyle='--', alpha=0.5)  # 减小网格透明度
plt.xticks(df['时间'], rotation=45, fontsize=6)  # 减小刻度字体
plt.yticks(fontsize=6)  # 减小刻度字体

# 添加图例
plt.legend(fontsize=5, loc='best')  # 减小图例字体,自动选择最佳位置

# 美化布局
plt.tight_layout(pad=0.5)  # 减小内边距

# 保存图像
output_path_b1 = '/Users/wanshiqing/Desktop/Leverage_Trend.png'
plt.savefig(output_path_b1, dpi=300, bbox_inches='tight')  # 裁剪多余空白
print(f"时序图B1已保存至: {output_path_b1}")

# 显示图像
plt.show()

# 2. 绘制时序图B2:ROA和Cash的均值(双纵坐标)
fig, ax1 = plt.subplots(figsize=(4, 3))

# 绘制ROA均值(左侧坐标轴)
color = '#1f77b4'
ax1.plot(df['时间'], df['ROA_平均值'], 
         label='ROA Mean' if 'USE_CHINESE' in globals() and not USE_CHINESE else 'ROA均值', 
         marker='o', markersize=3, linewidth=1, color=color)  # 减小标记大小和线宽
ax1.set_xlabel('Year' if 'USE_CHINESE' in globals() and not USE_CHINESE else '年份', fontsize=6)  # 减小字体
ax1.set_ylabel('ROA' if 'USE_CHINESE' in globals() and not USE_CHINESE else 'ROA',  # 简化标签
               color=color, fontsize=6)  # 减小字体
ax1.tick_params(axis='y', labelcolor=color, labelsize=5)  # 减小刻度字体
ax1.tick_params(axis='x', labelsize=5)  # 减小刻度字体
ax1.grid(True, linestyle='--', alpha=0.5)  # 减小网格透明度

# 创建第二个坐标轴(共享x轴)
ax2 = ax1.twinx()

# 绘制Cash均值(右侧坐标轴)
color = '#ff7f0e'
ax2.plot(df['时间'], df['Cash_平均值'], 
         label='Cash Ratio' if 'USE_CHINESE' in globals() and not USE_CHINESE else '现金比率',  # 简化标签
         marker='s', markersize=3, linestyle='--', linewidth=1, color=color)  # 减小标记大小和线宽
ax2.set_ylabel('Cash Ratio' if 'USE_CHINESE' in globals() and not USE_CHINESE else '现金比率',  # 简化标签
               color=color, fontsize=6)  # 减小字体
ax2.tick_params(axis='y', labelcolor=color, labelsize=5)  # 减小刻度字体

# 设置标题
plt.title(f'ROA and Cash Ratio Trend'  # 简化标题
          if 'USE_CHINESE' in globals() and not USE_CHINESE 
          else f'ROA与现金比率趋势',  # 简化标题
          fontsize=7)  # 减小标题字体

# 设置x轴刻度
ax1.set_xticks(df['时间'])
ax1.set_xticklabels(df['时间'], rotation=45, fontsize=5)  # 减小刻度字体

# 添加图例(合并两个坐标轴的图例)
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, fontsize=5, loc='best')  # 减小图例字体,自动选择最佳位置

# 格式化y轴标签为百分比
ax1.yaxis.set_major_formatter(mticker.PercentFormatter(xmax=1.0, decimals=0))  # 简化百分比格式
ax2.yaxis.set_major_formatter(mticker.PercentFormatter(xmax=1.0, decimals=0))  # 简化百分比格式

# 美化布局
fig.tight_layout(pad=0.5)  # 减小内边距

# 保存图像
output_path_b2 = '/Users/wanshiqing/Desktop/ROA_Cash_Trend.png'
plt.savefig(output_path_b2, dpi=300, bbox_inches='tight')  # 裁剪多余空白
print(f"时序图B2已保存至: {output_path_b2}")

# 显示图像
plt.show()

# 可选:输出统计数据用于参考
print("\n关键统计数据:")
print(df[['时间', 'Lev_平均值', 'Lev_中位数', 'ROA_平均值', 'Cash_平均值']].round(4))
使用中文字体: Songti SC
时序图B1已保存至: /Users/wanshiqing/Desktop/Leverage_Trend.png

时序图B2已保存至: /Users/wanshiqing/Desktop/ROA_Cash_Trend.png


关键统计数据:
      时间  Lev_平均值  Lev_中位数  ROA_平均值  Cash_平均值
0   2000   0.0889   0.0000   0.0069    0.0316
1   2001   0.0977   0.0000   0.0045    0.0364
2   2002   0.1067   0.0000   0.0035    0.0353
3   2003   0.1157   0.0000   0.0045    0.0357
4   2004   0.1277   0.0000   0.0045    0.0371
5   2005   0.1329   0.0000   0.0021    0.0325
6   2006   0.1423   0.0000   0.0062    0.0356
7   2007   0.1489   0.0000   0.0121    0.0420
8   2008   0.1523   0.0000   0.0075    0.0431
9   2009   0.1611   0.0000   0.0112    0.0587
10  2010   0.1757   0.0000   0.0184    0.0844
11  2011   0.1860   0.0000   0.0190    0.0907
12  2012   0.1952   0.0000   0.0168    0.0878
13  2013   0.2032   0.0000   0.0168    0.0763
14  2014   0.2157   0.0000   0.0175    0.0730
15  2015   0.2309   0.1214   0.0181    0.0840
16  2016   0.2475   0.1859   0.0245    0.0963
17  2017   0.2741   0.2383   0.0297    0.1021
18  2018   0.2934   0.2728   0.0219    0.0953
19  2019   0.3085   0.2933   0.0229    0.1029
20  2020   0.3346   0.3254   0.0274    0.1320
21  2021   0.3658   0.3599   0.0318    0.1422
22  2022   0.3779   0.3673   0.0249    0.1571
23  2023   0.3853   0.3728   0.0206    0.1610
24  2024   0.3961   0.3861   0.0139    0.1445
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as mticker
import matplotlib.font_manager as fm
import os

# 设置中文字体(适用于Mac系统)
try:
    # 尝试查找 macOS 系统自带的中文字体
    font_names = ['Songti SC', 'STHeiti', 'PingFang SC', 'Hiragino Sans GB', 'Arial Unicode MS']
    available_fonts = [f.name for f in fm.fontManager.ttflist]
    
    # 寻找可用的中文字体
    chinese_font = None
    for font in font_names:
        if font in available_fonts:
            chinese_font = font
            break
    
    # 如果找到可用字体,设置matplotlib使用它
    if chinese_font:
        plt.rcParams['font.sans-serif'] = [chinese_font]
        print(f"使用中文字体: {chinese_font}")
    else:
        print("未找到系统自带中文字体,使用英文标签")
        USE_CHINESE = False
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
except:
    print("字体设置失败,使用英文标签")
    USE_CHINESE = False

# 读取数据
input_path = '/Users/wanshiqing/Desktop/python_code/merged_data.xlsx'
df = pd.read_excel(input_path)

# 新增并计算Lev字段(总负债率 = 负债合计 / 资产总计)
# 确保字段存在并处理分母为零的情况
if '负债合计' in df.columns and '资产总计' in df.columns:
    # 安全除法,避免分母为零
    df['Lev'] = np.where(df['资产总计'] != 0, 
                       df['负债合计'] / df['资产总计'], 
                       np.nan)
    print("Lev字段计算完成")
else:
    # 如果字段不存在,尝试可能的变体
    possible_debt = [col for col in df.columns if '负债合计' in col or '负债' in col]
    possible_assets = [col for col in df.columns if '资产总计' in col or '资产' in col]
    
    if possible_debt and possible_assets:
        debt_col = possible_debt[0]
        assets_col = possible_assets[0]
        df['Lev'] = np.where(df[assets_col] != 0, 
                           df[debt_col] / df[assets_col], 
                           np.nan)
        print(f"使用替代字段计算Lev: {debt_col}/{assets_col}")
    else:
        raise ValueError("无法找到计算Lev所需的字段(负债合计和资产总计)")

# 1. 创建行业映射
industry_mapping = {
    'C': '制造业',
    'D': '电力、热力、燃气及水生产和供应业',
    'G': '交通运输业',
    'E': '建筑业',
    'K': '房地产业',
    'F': '批发和零售业',
    'J': '金融业'
}

# 提取行业代码的首字母
if '行业代码' in df.columns:
    df['行业代码'] = df['行业代码'].astype(str)
    df['行业首字母'] = df['行业代码'].str[0]
else:
    # 如果行业代码字段不存在,尝试可能的变体
    possible_industry = [col for col in df.columns if '行业' in col or 'industry' in col.lower()]
    if possible_industry:
        industry_col = possible_industry[0]
        df['行业首字母'] = df[industry_col].astype(str).str[0]
        print(f"使用替代字段作为行业代码: {industry_col}")
    else:
        raise ValueError("无法找到行业代码字段")

# 创建行业字段
df['行业'] = df['行业首字母'].map(industry_mapping)

# 处理无法映射的行业
unknown_industry = df[df['行业'].isna()]['行业首字母'].unique()
if len(unknown_industry) > 0:
    print(f"发现无法映射的行业代码: {unknown_industry}")
    df['行业'] = df['行业'].fillna('其他行业')

# 2. 按'时间'和'行业'分组
# 3. 计算各行业各时间的总负债率(Lev)均值
# 确保时间字段存在
if '时间' not in df.columns:
    # 尝试可能的变体
    possible_time = [col for col in df.columns if '时间' in col or 'year' in col.lower() or 'date' in col.lower()]
    if possible_time:
        time_col = possible_time[0]
        df.rename(columns={time_col: '时间'}, inplace=True)
        print(f"使用替代字段作为时间: {time_col}")
    else:
        raise ValueError("无法找到时间字段")

# 筛选2000年及以后的数据
df = df[df['时间'] >= 2000]

# 按时间和行业分组计算Lev均值
industry_lev = df.groupby(['时间', '行业'])['Lev'].mean().reset_index()

# 按时间排序
industry_lev = industry_lev.sort_values(['时间', '行业'])

# 4. 绘制行业总负债率时序图
plt.figure(figsize=(10, 6))

# 获取行业列表并排序
industries = industry_lev['行业'].unique()
sorted_industries = sorted(industries, key=lambda x: industry_lev[industry_lev['行业'] == x]['Lev'].mean(), reverse=True)

# 设置颜色映射
colors = plt.cm.tab10(np.linspace(0, 1, len(sorted_industries)))

# 绘制各行业折线
for i, industry in enumerate(sorted_industries):
    industry_data = industry_lev[industry_lev['行业'] == industry]
    plt.plot(industry_data['时间'], industry_data['Lev'], 
             label=industry, marker='o', linewidth=2, color=colors[i])

# 设置标题和标签
if 'USE_CHINESE' in globals() and not USE_CHINESE:
    plt.title('Industry Leverage Ratio Trends (2000-{})'.format(industry_lev['时间'].max()), fontsize=14)
    plt.xlabel('Year', fontsize=12)
    plt.ylabel('Leverage Ratio (Lev)', fontsize=12)
else:
    plt.title('各行业总负债率(Lev)变化趋势 (2000-{})'.format(industry_lev['时间'].max()), fontsize=14)
    plt.xlabel('年份', fontsize=12)
    plt.ylabel('总负债率(Lev)', fontsize=12)

# 设置网格
plt.grid(True, linestyle='--', alpha=0.7)

# 添加图例
plt.legend(fontsize=10, loc='best')

# 设置y轴为百分比格式
plt.gca().yaxis.set_major_formatter(mticker.PercentFormatter(xmax=1.0))

# 调整布局
plt.tight_layout()

# 保存图像
output_path = '/Users/wanshiqing/Desktop/Industry_Lev_Trends.png'
plt.savefig(output_path, dpi=300)
print(f"行业总负债率时序图已保存至: {output_path}")

# 显示图像
plt.show()

# 可选:输出各行业平均负债率
print("\n各行业平均总负债率:")
industry_avg = industry_lev.groupby('行业')['Lev'].mean().sort_values(ascending=False)
print(industry_avg.apply(lambda x: f"{x:.2%}"))

# 可选:绘制小尺寸图表(用于论文)
plt.figure(figsize=(8, 4.5))

# 绘制各行业折线(更细线条)
for i, industry in enumerate(sorted_industries):
    industry_data = industry_lev[industry_lev['行业'] == industry]
    plt.plot(industry_data['时间'], industry_data['Lev'], 
             label=industry, marker='o', markersize=3, linewidth=1, color=colors[i])

# 设置标题和标签(更小字体)
if 'USE_CHINESE' in globals() and not USE_CHINESE:
    plt.title('Industry Leverage Ratio Trends', fontsize=10)
    plt.xlabel('Year', fontsize=9)
    plt.ylabel('Leverage Ratio', fontsize=9)
else:
    plt.title('各行业总负债率变化趋势', fontsize=10)
    plt.xlabel('年份', fontsize=9)
    plt.ylabel('总负债率', fontsize=9)

# 设置网格
plt.grid(True, linestyle='--', alpha=0.5)

# 添加图例(更小字体)
plt.legend(fontsize=8, loc='best')

# 设置y轴为百分比格式
plt.gca().yaxis.set_major_formatter(mticker.PercentFormatter(xmax=1.0))

# 设置刻度字体
plt.xticks(fontsize=8)
plt.yticks(fontsize=8)

# 调整布局
plt.tight_layout()

# 保存小尺寸图像
small_output_path = '/Users/wanshiqing/Desktop/Industry_Lev_Trends_small.png'
plt.savefig(small_output_path, dpi=300, bbox_inches='tight')
print(f"小尺寸行业总负债率时序图已保存至: {small_output_path}")

# 显示图像
plt.show()
使用中文字体: Songti SC
Lev字段计算完成
发现无法映射的行业代码: ['I' 'M' 'n' 'N' 'H' 'S' 'L' 'A' 'Q' 'R' 'B' 'P' 'O']
行业总负债率时序图已保存至: /Users/wanshiqing/Desktop/Industry_Lev_Trends.png


各行业平均总负债率:
行业
金融业                 73.06%
交通运输业               69.84%
建筑业                 66.57%
其他行业                57.21%
房地产业                53.43%
电力、热力、燃气及水生产和供应业    52.61%
制造业                 51.64%
批发和零售业              48.92%
Name: Lev, dtype: object
小尺寸行业总负债率时序图已保存至: /Users/wanshiqing/Desktop/Industry_Lev_Trends_small.png

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as mticker
import matplotlib.font_manager as fm
import os

# 设置中文字体(适用于Mac系统)
try:
    # 尝试查找 macOS 系统自带的中文字体
    font_names = ['Songti SC', 'STHeiti', 'PingFang SC', 'Hiragino Sans GB', 'Arial Unicode MS']
    available_fonts = [f.name for f in fm.fontManager.ttflist]
    
    # 寻找可用的中文字体
    chinese_font = None
    for font in font_names:
        if font in available_fonts:
            chinese_font = font
            break
    
    # 如果找到可用字体,设置matplotlib使用它
    if chinese_font:
        plt.rcParams['font.sans-serif'] = [chinese_font]
        print(f"使用中文字体: {chinese_font}")
    else:
        print("未找到系统自带中文字体,使用英文标签")
        USE_CHINESE = False
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
except:
    print("字体设置失败,使用英文标签")
    USE_CHINESE = False

# 1. 读取文件
input_path = '/Users/wanshiqing/Desktop/python_code/merged_data.xlsx'
print(f"正在读取文件: {input_path}")
df = pd.read_excel(input_path)
print(f"数据读取成功! 共 {len(df)} 行记录")

# 2. 计算Lev = 总负债率 = 负债合计/资产总计
print("\n计算总负债率(Lev)...")
if '负债合计' in df.columns and '资产总计' in df.columns:
    # 安全除法,避免分母为零
    df['Lev'] = np.where(df['资产总计'] != 0, 
                       df['负债合计'] / df['资产总计'], 
                       np.nan)
    print("Lev字段计算完成")
else:
    # 如果字段不存在,尝试可能的变体
    possible_debt = [col for col in df.columns if '负债合计' in col or '负债' in col]
    possible_assets = [col for col in df.columns if '资产总计' in col or '资产' in col]
    
    if possible_debt and possible_assets:
        debt_col = possible_debt[0]
        assets_col = possible_assets[0]
        df['Lev'] = np.where(df[assets_col] != 0, 
                           df[debt_col] / df[assets_col], 
                           np.nan)
        print(f"使用替代字段计算Lev: {debt_col}/{assets_col}")
    else:
        raise ValueError("无法找到计算Lev所需的字段(负债合计和资产总计)")

# 3. 创建行业映射
print("\n创建行业字段...")
industry_mapping = {
    'C': '制造业',
    'D': '电力、热力、燃气及水生产和供应业',
    'G': '交通运输业',
    'E': '建筑业',
    'K': '房地产业',
    'F': '批发和零售业',
    'J': '金融业'
}

# 确保行业代码字段存在
if '行业代码' not in df.columns:
    # 尝试查找可能的替代字段
    possible_cols = [col for col in df.columns if '行业' in col or 'industry' in col.lower()]
    if possible_cols:
        print(f"使用替代字段作为行业代码: {possible_cols[0]}")
        industry_col = possible_cols[0]
    else:
        raise ValueError("无法找到行业代码字段")
else:
    industry_col = '行业代码'

# 将行业代码转换为字符串类型
df[industry_col] = df[industry_col].astype(str)

# 提取行业代码的首字母
df['行业首字母'] = df[industry_col].str[0]

# 创建行业字段
df['行业'] = df['行业首字母'].map(industry_mapping)

# 处理无法映射的行业代码
unknown_industries = df[df['行业'].isna()]['行业首字母'].unique()
if len(unknown_industries) > 0:
    print(f"发现无法映射的行业代码: {unknown_industries}")
    # 将这些行业归类为"其他行业"
    df['行业'] = df['行业'].fillna('其他行业')

# 显示行业分布情况
industry_counts = df['行业'].value_counts()
print("\n行业分布统计:")
print(industry_counts)

# 4. 按行业内每家公司的总资产计算权重
print("\n计算权重...")
# 先按年份和行业分组,计算每个行业每年的总资产
industry_year_assets = df.groupby(['时间', '行业'])['资产总计'].sum().reset_index()
industry_year_assets.rename(columns={'资产总计': '行业年总资产'}, inplace=True)

# 合并回原始数据框
df = pd.merge(df, industry_year_assets, on=['时间', '行业'], how='left')

# 计算权重:公司资产 / 行业年总资产
df['权重'] = df['资产总计'] / df['行业年总资产']

# 5. 按'行业'和'时间'分组,计算年加权平均负债率
print("\n计算年加权平均负债率...")
# 加权平均负债率 = Σ(权重 * Lev)
df['加权负债率'] = df['权重'] * df['Lev']
weighted_lev = df.groupby(['时间', '行业'])['加权负债率'].sum().reset_index()
weighted_lev.rename(columns={'加权负债率': '年加权平均负债率'}, inplace=True)

# 筛选2000年及以后的数据
weighted_lev = weighted_lev[weighted_lev['时间'] >= 2000]

# 按时间排序
weighted_lev = weighted_lev.sort_values(['时间', '行业'])

# 6. 绘制加权平均负债率时序图
print("\n绘制时序图...")
plt.figure(figsize=(12, 8))

# 获取行业列表并排序
industries = weighted_lev['行业'].unique()
sorted_industries = sorted(industries, key=lambda x: weighted_lev[weighted_lev['行业'] == x]['年加权平均负债率'].mean(), 
                           reverse=True)

# 设置颜色映射
colors = plt.cm.tab10(np.linspace(0, 1, len(sorted_industries)))

# 绘制各行业折线
for i, industry in enumerate(sorted_industries):
    industry_data = weighted_lev[weighted_lev['行业'] == industry]
    plt.plot(industry_data['时间'], industry_data['年加权平均负债率'], 
             label=industry, marker='o', linewidth=2.5, color=colors[i])

# 设置标题和标签
if 'USE_CHINESE' in globals() and not USE_CHINESE:
    plt.title('Industry Weighted Average Leverage Ratio (2000-{})'.format(weighted_lev['时间'].max()), fontsize=16)
    plt.xlabel('Year', fontsize=14)
    plt.ylabel('Weighted Average Leverage Ratio', fontsize=14)
else:
    plt.title('各行业年加权平均负债率变化趋势 (2000-{})'.format(weighted_lev['时间'].max()), fontsize=16)
    plt.xlabel('年份', fontsize=14)
    plt.ylabel('年加权平均负债率', fontsize=14)

# 设置网格
plt.grid(True, linestyle='--', alpha=0.7)

# 添加图例
plt.legend(fontsize=12, loc='best', frameon=True, shadow=True)

# 设置y轴为百分比格式
plt.gca().yaxis.set_major_formatter(mticker.PercentFormatter(xmax=1.0))

# 设置x轴刻度
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)

# 调整布局
plt.tight_layout()

# 保存图像
output_path = '/Users/wanshiqing/Desktop/Industry_Weighted_Lev_Trends.png'
plt.savefig(output_path, dpi=300, bbox_inches='tight')
print(f"行业加权平均负债率时序图已保存至: {output_path}")

# 显示图像
plt.show()

# 可选:输出各行业平均加权负债率
print("\n各行业平均加权负债率:")
industry_avg = weighted_lev.groupby('行业')['年加权平均负债率'].mean().sort_values(ascending=False)
print(industry_avg.apply(lambda x: f"{x:.2%}"))

# 可选:保存加权平均结果
output_csv_path = '/Users/wanshiqing/Desktop/weighted_industry_lev.csv'
weighted_lev.to_csv(output_csv_path, index=False)
print(f"加权平均负债率数据已保存至: {output_csv_path}")

# 保存处理后的数据
output_excel_path = '/Users/wanshiqing/Desktop/processed_data.xlsx'
df.to_excel(output_excel_path, index=False)
print(f"处理后的完整数据已保存至: {output_excel_path}")

# 完成
print("\n第六步处理完成!")
使用中文字体: Songti SC
正在读取文件: /Users/wanshiqing/Desktop/python_code/merged_data.xlsx
数据读取成功! 共 145874 行记录

计算总负债率(Lev)...
Lev字段计算完成

创建行业字段...
发现无法映射的行业代码: ['I' 'M' 'n' 'N' 'H' 'S' 'L' 'A' 'Q' 'R' 'B' 'P' 'O']

行业分布统计:
行业
其他行业                92759
制造业                 40346
批发和零售业               2770
交通运输业                2447
房地产业                 2065
金融业                  2027
电力、热力、燃气及水生产和供应业     2004
建筑业                  1456
Name: count, dtype: int64

计算权重...

计算年加权平均负债率...

绘制时序图...
行业加权平均负债率时序图已保存至: /Users/wanshiqing/Desktop/Industry_Weighted_Lev_Trends.png


各行业平均加权负债率:
行业
金融业                 76.42%
建筑业                 73.70%
其他行业                65.89%
房地产业                62.75%
电力、热力、燃气及水生产和供应业    59.95%
批发和零售业              58.89%
制造业                 52.94%
交通运输业               52.62%
Name: 年加权平均负债率, dtype: object
加权平均负债率数据已保存至: /Users/wanshiqing/Desktop/weighted_industry_lev.csv
处理后的完整数据已保存至: /Users/wanshiqing/Desktop/processed_data.xlsx

第六步处理完成!
import pandas as pd
import numpy as np
from datetime import datetime

# 1. 读取文件
input_path = '/Users/wanshiqing/Desktop/python_code/merged_data.xlsx'
print(f"正在读取文件: {input_path}")
df = pd.read_excel(input_path)
print(f"数据读取成功! 共 {len(df)} 行记录")
print(f"原始字段: {df.columns.tolist()}")

# 2. 计算并新增字段
print("\n计算并新增财务指标字段...")
def safe_divide(numerator, denominator):
    """安全除法函数,处理分母为零的情况"""
    return np.where(denominator != 0, numerator / denominator, np.nan)

# 确保所需字段存在
required_fields = ['短期借款', '长期借款', '负债合计', '资产总计', '期末现金及现金等价物余额', 
                  '净利润', '所有者权益合计']
for field in required_fields:
    if field not in df.columns:
        print(f"警告: 字段 '{field}' 不存在,尝试查找替代字段...")
        # 尝试查找可能的替代字段
        possible_cols = [col for col in df.columns if field in col or field.lower() in col.lower()]
        if possible_cols:
            df.rename(columns={possible_cols[0]: field}, inplace=True)
            print(f"  使用替代字段: {possible_cols[0]} 作为 {field}")
        else:
            raise ValueError(f"无法找到必需的字段: {field}")

# 计算新增字段
df['SLoan'] = safe_divide(df['短期借款'], df['资产总计'])
df['LLoan'] = safe_divide(df['长期借款'], df['资产总计'])
df['Lev'] = safe_divide(df['负债合计'], df['资产总计'])
df['Cash'] = safe_divide(df['期末现金及现金等价物余额'], df['资产总计'])
df['ROA'] = safe_divide(df['净利润'], df['资产总计'])
df['ROE'] = safe_divide(df['净利润'], df['所有者权益合计'])

# 检查计算结果
print("新增字段计算完成:")
print(f"  SLoan: {df['SLoan'].notna().sum()} 个有效值")
print(f"  LLoan: {df['LLoan'].notna().sum()} 个有效值")
print(f"  Lev: {df['Lev'].notna().sum()} 个有效值")
print(f"  Cash: {df['Cash'].notna().sum()} 个有效值")
print(f"  ROA: {df['ROA'].notna().sum()} 个有效值")
print(f"  ROE: {df['ROE'].notna().sum()} 个有效值")

# 3. 创建行业字段
print("\n创建行业字段...")
industry_mapping = {
    'C': '制造业',
    'D': '电力、热力、燃气及水生产和供应业',
    'G': '交通运输业',
    'E': '建筑业',
    'K': '房地产业',
    'F': '批发和零售业',
    'J': '金融业'
}

# 确保行业代码字段存在
if '行业代码' not in df.columns:
    # 尝试查找可能的替代字段
    possible_cols = [col for col in df.columns if '行业' in col or 'industry' in col.lower()]
    if possible_cols:
        print(f"使用替代字段作为行业代码: {possible_cols[0]}")
        industry_col = possible_cols[0]
    else:
        raise ValueError("无法找到行业代码字段")
else:
    industry_col = '行业代码'

# 将行业代码转换为字符串类型
df[industry_col] = df[industry_col].astype(str)

# 提取行业代码的首字母
df['行业首字母'] = df[industry_col].str[0]

# 创建行业字段
df['行业'] = df['行业首字母'].map(industry_mapping)

# 处理无法映射的行业代码
unknown_industries = df[df['行业'].isna()]['行业首字母'].unique()
if len(unknown_industries) > 0:
    print(f"发现无法映射的行业代码: {unknown_industries}")
    # 将这些行业归类为"其他行业"
    df['行业'] = df['行业'].fillna('其他行业')

# 显示行业分布情况
industry_counts = df['行业'].value_counts()
print("\n行业分布统计:")
print(industry_counts)

# 4. 按'行业'和'时间'分组,计算平均值
print("\n按行业和时间分组计算平均值...")
# 筛选2000年及以后的数据
df = df[df['时间'] >= 2000]

# 分组计算平均值
grouped = df.groupby(['行业', '时间']).agg({
    'SLoan': 'mean',
    'LLoan': 'mean',
    'Lev': 'mean',
    'Cash': 'mean',
    'ROA': 'mean',
    'ROE': 'mean'
}).reset_index()

# 重命名列
grouped.rename(columns={
    'SLoan': '短期借款比率',
    'LLoan': '长期借款比率',
    'Lev': '总负债率',
    'Cash': '现金比率',
    'ROA': '资产收益率',
    'ROE': '净资产收益率'
}, inplace=True)

# 按时间和行业排序
grouped = grouped.sort_values(['时间', '行业'])

# 5. 列表呈现
print("\n按行业和时间分组的财务指标平均值:")
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 1000)
pd.set_option('display.float_format', lambda x: f"{x:.4f}" if isinstance(x, float) else x)

# 显示表格
print(grouped)

# 保存结果到Excel(保留原始数值)
output_path = '/Users/wanshiqing/Desktop/industry_financial_metrics.xlsx'
grouped.to_excel(output_path, index=False)
print(f"\n结果已保存至: {output_path}")

# 创建格式化版本用于展示
formatted_grouped = grouped.copy()
percent_cols = ['短期借款比率', '长期借款比率', '总负债率', '现金比率', '资产收益率', '净资产收益率']
for col in percent_cols:
    formatted_grouped[col] = formatted_grouped[col].apply(lambda x: f"{x:.2%}" if pd.notnull(x) else "")

# 保存格式化版本
formatted_output_path = '/Users/wanshiqing/Desktop/industry_financial_metrics_formatted.xlsx'
formatted_grouped.to_excel(formatted_output_path, index=False)
print(f"格式化结果已保存至: {formatted_output_path}")

# 按行业汇总(使用原始数值)
industry_summary = grouped.groupby('行业').agg({
    '短期借款比率': 'mean',
    '长期借款比率': 'mean',
    '总负债率': 'mean',
    '现金比率': 'mean',
    '资产收益率': 'mean',
    '净资产收益率': 'mean'
}).reset_index()

# 创建格式化版本用于展示
formatted_summary = industry_summary.copy()
for col in percent_cols:
    formatted_summary[col] = formatted_summary[col].apply(lambda x: f"{x:.2%}" if pd.notnull(x) else "")

print("\n按行业汇总的财务指标平均值:")
print(formatted_summary)

# 保存行业汇总结果
summary_output_path = '/Users/wanshiqing/Desktop/industry_summary.xlsx'
industry_summary.to_excel(summary_output_path, index=False)
print(f"行业汇总结果已保存至: {summary_output_path}")

# 保存格式化行业汇总结果
formatted_summary_output_path = '/Users/wanshiqing/Desktop/industry_summary_formatted.xlsx'
formatted_summary.to_excel(formatted_summary_output_path, index=False)
print(f"格式化行业汇总结果已保存至: {formatted_summary_output_path}")

# 保存处理后的完整数据
full_output_path = '/Users/wanshiqing/Desktop/processed_financial_data.xlsx'
df.to_excel(full_output_path, index=False)
print(f"处理后的完整数据已保存至: {full_output_path}")

print("\n第七步处理完成!")
正在读取文件: /Users/wanshiqing/Desktop/python_code/merged_data.xlsx
数据读取成功! 共 145874 行记录
原始字段: ['证券代码', '时间', '负债合计', '资产总计', '流动负债合计', '长期负债合计', '所有者权益合计', '短期借款', '长期借款', '股权集中度1', '股权集中度9', '首次上市日期', '行业代码', '期末现金及现金等价物余额', '净利润']

计算并新增财务指标字段...
新增字段计算完成:
  SLoan: 62635 个有效值
  LLoan: 52544 个有效值
  Lev: 71787 个有效值
  Cash: 71637 个有效值
  ROA: 71787 个有效值
  ROE: 71785 个有效值

创建行业字段...
发现无法映射的行业代码: ['I' 'M' 'n' 'N' 'H' 'S' 'L' 'A' 'Q' 'R' 'B' 'P' 'O']

行业分布统计:
行业
其他行业                92759
制造业                 40346
批发和零售业               2770
交通运输业                2447
房地产业                 2065
金融业                  2027
电力、热力、燃气及水生产和供应业     2004
建筑业                  1456
Name: count, dtype: int64

按行业和时间分组计算平均值...

按行业和时间分组的财务指标平均值:
                   行业    时间  短期借款比率  长期借款比率   总负债率   现金比率    资产收益率  净资产收益率
0               交通运输业  2000  0.1634  0.0255 0.4352 0.2127   0.0510  0.0894
25               其他行业  2000  0.2289  0.0481 0.5270 0.1506   0.0124 -0.0290
50                制造业  2000  0.1564  0.0518 0.4253 0.1649   0.0340  0.0385
75                建筑业  2000  0.2016  0.0372 0.5859 0.1326   0.0168 -0.0140
100              房地产业  2000  0.1005  0.0627 0.3374 0.1797   0.0354  0.0260
125            批发和零售业  2000  0.1144  0.0757 0.4143 0.1786   0.0453  0.0790
150  电力、热力、燃气及水生产和供应业  2000  0.0859  0.0818 0.3502 0.1416   0.0508  0.0868
175               金融业  2000  0.2199  0.0345 0.4928 0.1112   0.0174  0.0391
1               交通运输业  2001  0.1946  0.0274 0.4708 0.2360   0.0185  0.1264
26               其他行业  2001  0.2385  0.0633 0.6050 0.1546  -0.0435 -0.0013
51                制造业  2001  0.1815  0.0552 0.4759 0.1799  -0.0226  0.0121
76                建筑业  2001  0.1744  0.0405 0.5885 0.1625   0.0085  0.0137
101              房地产业  2001  0.1028  0.0620 0.3572 0.1902   0.0386  0.0636
126            批发和零售业  2001  0.1023  0.0893 0.3571 0.1676   0.0446  0.0661
151  电力、热力、燃气及水生产和供应业  2001  0.0806  0.0936 0.3427 0.1506   0.0532  0.0841
176               金融业  2001  0.2339  0.0387 0.5941 0.1358   0.0003 -0.3361
2               交通运输业  2002  0.1951  0.0254 0.4826 0.2425   0.0153  0.0129
27               其他行业  2002  0.2488  0.0432 0.6260 0.1398  -0.0641  0.0259
52                制造业  2002  0.1876  0.0529 0.4951 0.1651  -0.0082  0.3696
77                建筑业  2002  0.1491  0.0592 0.5831 0.1467   0.0059 -0.0518
102              房地产业  2002  0.1232  0.0352 0.3652 0.1511   0.0378  0.0519
127            批发和零售业  2002  0.1093  0.0791 0.3625 0.1512   0.0401  0.0542
152  电力、热力、燃气及水生产和供应业  2002  0.0995  0.1211 0.3895 0.1481   0.0437  0.0718
177               金融业  2002  0.2175  0.0509 0.5645 0.1346  -0.0485 -0.2999
3               交通运输业  2003  0.2075  0.0207 0.5140 0.2448  -0.0724  0.0589
28               其他行业  2003  0.2773  0.0444 0.7274 0.1415  -0.0293  0.0224
53                制造业  2003  0.1942  0.0550 0.5041 0.1549   0.0159  0.0058
78                建筑业  2003  0.1690  0.0628 0.6071 0.1570  -0.0167  0.0745
103              房地产业  2003  0.1479  0.0533 0.4085 0.1314   0.0094  0.0538
128            批发和零售业  2003  0.1235  0.0813 0.3607 0.1531   0.0416  0.0317
153  电力、热力、燃气及水生产和供应业  2003  0.1041  0.1439 0.4176 0.1197   0.0444  0.0719
178               金融业  2003  0.2183  0.0618 0.6016 0.1326   0.0023 -0.2258
4               交通运输业  2004  0.2731  0.0152 0.6922 0.2184  -0.2616  0.0563
29               其他行业  2004  0.2798  0.0489 0.7673 0.1409  -0.0519 -0.0033
54                制造业  2004  0.2054  0.0560 0.5453 0.1525   0.0017 -0.0472
79                建筑业  2004  0.1713  0.0591 0.7306 0.1593  -0.0680  0.0738
104              房地产业  2004  0.1502  0.0685 0.4563 0.1250   0.0366  0.0733
129            批发和零售业  2004  0.1168  0.0760 0.3806 0.2736   0.0526  0.0717
154  电力、热力、燃气及水生产和供应业  2004  0.1189  0.1756 0.4544 0.1107   0.0371  0.0739
179               金融业  2004  0.2150  0.0743 0.6655 0.1309   0.0265  0.0259
5               交通运输业  2005  0.2125  0.0168 0.6484 0.5956  -0.0816  0.0068
30               其他行业  2005  0.2519  0.0488 0.7725 0.1286  -0.0077 -0.2177
55                制造业  2005  0.2261  0.0525 0.6412 0.2234  -0.0205  0.0135
80                建筑业  2005  0.1500  0.0797 0.6577 0.1290   0.0201  0.0634
105              房地产业  2005  0.1555  0.0753 0.4773 0.1137   0.0257  0.0121
130            批发和零售业  2005  0.1180  0.0880 0.4323 0.1335   0.0141  0.1234
155  电力、热力、燃气及水生产和供应业  2005  0.1189  0.1898 0.4891 0.0926   0.0225 -0.0285
180               金融业  2005  0.2039  0.0755 0.7313 0.1171   0.0031  0.0293
6               交通运输业  2006  0.2790  0.0170 0.9116 0.2204  -0.1807  0.0481
31               其他行业  2006  0.2364  0.0508 0.8276 0.1330   0.0082  1.4331
56                制造业  2006  0.7699  0.0506 1.6935 0.1333  -2.5587  0.5948
81                建筑业  2006  0.1352  0.0673 0.6436 0.1597   0.0247  0.0680
106              房地产业  2006  0.1287  0.0724 0.4758 0.1310   0.0272  0.0348
131            批发和零售业  2006  0.1362  0.0956 0.4858 0.1381   0.0355  0.1183
156  电力、热力、燃气及水生产和供应业  2006  0.1443  0.1882 0.5253 0.2559   0.0305  0.0643
181               金融业  2006  0.1438  0.1087 0.6489 0.1083   0.0228 -0.0339
7               交通运输业  2007  0.2470  0.0198 2.0235 0.2401   7.8151 -0.0115
32               其他行业  2007  0.2082  0.0520 0.8273 0.1565   0.0407  0.0836
57                制造业  2007  0.2224  0.0461 0.7052 0.1420   0.0884  0.0759
82                建筑业  2007  0.1432  0.0631 0.6775 0.1525   0.0285  0.1039
107              房地产业  2007  0.1300  0.0621 0.4344 0.1695   0.0697  0.1268
132            批发和零售业  2007  0.1573  0.1023 0.5740 0.1260   0.0606  2.6564
157  电力、热力、燃气及水生产和供应业  2007  0.1526  0.1892 0.5305 0.0845   0.0381  0.0805
182               金融业  2007  0.0973  0.1163 0.7034 0.1518   0.0994  0.0200
8               交通运输业  2008  0.1413  0.0108 2.2589 0.2529 227.7890 -1.5804
33               其他行业  2008  0.2205  0.0546 1.0286 0.1570  -0.0418  0.1250
58                制造业  2008  0.2072  0.0457 0.6415 0.1445   0.0206  0.0117
83                建筑业  2008  0.1449  0.0724 0.6990 0.1315   0.0060  0.0379
108              房地产业  2008  0.1456  0.0643 0.4388 0.1375   0.0353  0.0895
133            批发和零售业  2008  0.1082  0.1179 0.4595 0.1236   0.0678 -0.1113
158  电力、热力、燃气及水生产和供应业  2008  0.1702  0.2419 0.6054 0.0813  -0.0026 -0.0417
183               金融业  2008  0.0941  0.1142 0.7663 0.1147   0.0563  0.0774
9               交通运输业  2009  0.1145  0.0156 2.0586 0.3451  -0.4008  0.1220
34               其他行业  2009  0.1521  0.0603 0.7977 0.1805   0.0238  0.0847
59                制造业  2009  0.1625  0.0535 0.5628 0.1871   0.0443 -0.2628
84                建筑业  2009  0.1003  0.0776 0.6809 0.1903   0.0214  0.0670
109              房地产业  2009  0.1498  0.0673 0.4925 0.2135  -0.0411  0.1126
134            批发和零售业  2009  0.0858  0.1220 0.4476 0.1400   0.0407  0.0764
159  电力、热力、燃气及水生产和供应业  2009  0.1416  0.2451 0.6180 0.0897   0.0150  0.1043
184               金融业  2009  0.0623  0.1395 1.1700 0.1672   0.0422  0.0963
10              交通运输业  2010  0.0849  0.0115 0.6682 0.4039  -0.0014  0.0913
35               其他行业  2010  0.1113  0.0600 0.7035 0.2116   0.0510  0.1311
60                制造业  2010  0.1265  0.0420 0.4879 0.2398   0.0505  0.1148
85                建筑业  2010  0.0764  0.0833 0.6543 0.2021   0.0429  0.1215
110              房地产业  2010  0.1091  0.0644 0.4688 0.2488   0.0580 -0.0476
135            批发和零售业  2010  0.0722  0.1425 0.4449 0.1465   0.0546  0.0959
160  电力、热力、燃气及水生产和供应业  2010  0.1298  0.2309 0.5980 0.1027   0.0289  0.0550
185               金融业  2010  0.0606  0.1414 0.6841 0.1551   0.0310  0.1472
11              交通运输业  2011  0.0552  0.0159 0.3584 0.3938   0.0615  0.0962
36               其他行业  2011  0.1087  0.0491 0.6165 0.2068   0.0941  1.6309
61                制造业  2011  0.1249  0.0334 0.4428 0.2234   0.0621  0.5538
86                建筑业  2011  0.0988  0.0657 0.6520 0.1940   0.0350  0.1059
111              房地产业  2011  0.0741  0.0622 0.3871 0.2676   0.0512  0.0852
136            批发和零售业  2011  0.0674  0.1265 0.4578 0.1469   0.0453  0.0405
161  电力、热力、燃气及水生产和供应业  2011  0.1264  0.2252 0.6076 0.0924   0.0240  0.0483
186               金融业  2011  0.0536  0.1299 0.6264 0.1244   0.0324  0.1062
12              交通运输业  2012  0.0774  0.1115 0.4582 0.1367   0.0452  0.1351
37               其他行业  2012  0.0893  0.0434 0.4785 0.2437   0.0436  0.1372
62                制造业  2012  0.1180  0.0299 0.4286 0.2051   0.0383  0.0785
87                建筑业  2012  0.1067  0.0636 0.6586 0.1642   0.0320  0.0921
112              房地产业  2012  0.0527  0.1373 0.6284 0.1277   0.0304  0.1008
137            批发和零售业  2012  0.1335  0.0305 0.5512 0.2032   0.0367  0.0841
162  电力、热力、燃气及水生产和供应业  2012  0.1134  0.1958 0.5789 0.0963   0.0301  0.0703
187               金融业  2012  0.0021  0.0002 0.7009 0.2808   0.0198  0.1060
13              交通运输业  2013  0.1111  0.1104 0.5558 0.1212  -0.0524  0.0632
38               其他行业  2013  0.0883  0.0437 0.4093 0.2097   0.0707  0.5023
63                制造业  2013  0.1172  0.0298 0.4137 0.1672   0.1126  0.2525
88                建筑业  2013  0.1002  0.0735 0.6862 0.1550   0.0270  0.0775
113              房地产业  2013  0.0528  0.1635 0.6276 0.1246   0.0309  0.0914
138            批发和零售业  2013  0.1328  0.0364 0.5635 0.1874   0.0310  0.0668
163  电力、热力、燃气及水生产和供应业  2013  0.1046  0.1900 0.5701 0.0930   0.0412  0.0780
188               金融业  2013  0.0060  0.0043 0.7335 0.2108   0.0236  0.1204
14              交通运输业  2014  0.0685  0.1104 0.4525 0.1172   0.1394  0.6070
39               其他行业  2014  0.0864  0.0427 0.4152 0.1835   0.0423  0.0480
64                制造业  2014  0.1119  0.0273 0.4527 0.1500   0.0041  0.0021
89                建筑业  2014  0.0990  0.0607 0.6836 0.1286   0.0241  0.0758
114              房地产业  2014  0.0569  0.1552 0.6335 0.1053   0.0184 -0.0142
139            批发和零售业  2014  0.1300  0.0371 0.5801 0.1733   0.0228  0.0092
164  电力、热力、燃气及水生产和供应业  2014  0.0864  0.1892 0.5616 0.0970   0.0323  0.0672
189               金融业  2014  0.0069  0.0099 0.7969 0.2083   0.0282  0.1389
15              交通运输业  2015  0.0595  0.1039 0.4358 0.1215   0.0449  0.0829
40               其他行业  2015  0.0833  0.0374 0.4096 0.1834   0.0429  0.0764
65                制造业  2015  0.1043  0.0262 0.3979 0.1543   0.0322  0.0179
90                建筑业  2015  0.1052  0.0588 0.6428 0.1490   0.0246  0.0677
115              房地产业  2015  0.0623  0.1408 0.6398 0.1308   0.0080  0.0315
140            批发和零售业  2015  0.1236  0.0343 0.5452 0.1694   0.0273  0.0405
165  电力、热力、燃气及水生产和供应业  2015  0.0900  0.1836 0.5495 0.1024   0.0417  0.0784
190               金融业  2015  0.0139  0.0068 0.8049 0.2319   0.0294  0.1581
16              交通运输业  2016  0.0586  0.1302 0.4361 0.1181   0.0378  0.0575
41               其他行业  2016  0.0725  0.0705 0.3915 0.1943   0.0465  0.0714
66                制造业  2016  0.0888  0.0462 0.3842 0.1595   0.0480  0.0901
91                建筑业  2016  0.0921  0.0754 0.6133 0.1583   0.0205  0.0620
116              房地产业  2016  0.0412  0.1536 0.6438 0.1657   0.0194  0.0734
141            批发和零售业  2016  0.1035  0.0569 0.5205 0.1705   0.0297  0.0554
166  电力、热力、燃气及水生产和供应业  2016  0.0727  0.1919 0.5353 0.0951   0.0378  0.0798
191               金融业  2016  0.0142  0.0213 0.7872 0.1800   0.0171  0.0950
17              交通运输业  2017  0.0960  0.1287 0.4207 0.1285   0.0534  0.0933
42               其他行业  2017  0.1081  0.0724 0.3994 0.1807   0.0379 -0.1738
67                制造业  2017  0.1210  0.0527 0.3820 0.1524   0.0477  0.1855
92                建筑业  2017  0.1137  0.0834 0.6182 0.1432  -0.0026 -0.4727
117              房地产业  2017  0.0626  0.1574 0.6424 0.1475   0.0278  0.0813
142            批发和零售业  2017  0.1321  0.0566 0.5258 0.1701   0.0249 -0.0570
167  电力、热力、燃气及水生产和供应业  2017  0.1156  0.1954 0.5323 0.1089   0.0279  0.0419
192               金融业  2017  0.0420  0.0589 0.7741 0.1473   0.0148  0.0813
18              交通运输业  2018  0.1037  0.1268 0.4710 0.1137  -0.0051  0.0754
43               其他行业  2018  0.1161  0.0727 0.4582 0.1631  -0.0407 -0.3808
68                制造业  2018  0.1261  0.0534 0.4040 0.1375   0.0298 -0.0025
93                建筑业  2018  0.1876  0.0793 0.9298 0.1330  -0.2883 -0.0585
118              房地产业  2018  0.0474  0.1466 0.6434 0.1385   0.0196 -0.1915
143            批发和零售业  2018  0.1420  0.0488 0.5468 0.1571   0.0118 -1.1753
168  电力、热力、燃气及水生产和供应业  2018  0.1165  0.1863 0.5476 0.1010   0.0186 -0.0357
193               金融业  2018  0.0358  0.0473 0.7685 0.1331   0.0096  0.0638
19              交通运输业  2019  0.0932  0.1433 0.4743 0.1132   0.0373  0.1092
44               其他行业  2019  0.1067  0.0720 0.4313 0.1659   0.0111  0.0099
69                制造业  2019  0.1242  0.0547 0.4216 0.1450   0.0078 -0.0276
94                建筑业  2019  0.1021  0.0874 0.6617 0.1239   0.0132  0.0055
119              房地产业  2019  0.0483  0.1361 0.6309 0.1260   0.0228  0.0494
144            批发和零售业  2019  0.1427  0.0527 0.5421 0.1452   0.0165 -0.0384
169  电力、热力、燃气及水生产和供应业  2019  0.1100  0.1830 0.5516 0.0891   0.0172 -0.0243
194               金融业  2019  0.0353  0.0516 0.7619 0.1525   0.0041  0.0488
20              交通运输业  2020  0.0929  0.1446 0.4819 0.1228   0.0188  0.0520
45               其他行业  2020  0.0969  0.0789 0.4225 0.1890   0.0177  0.0471
70                制造业  2020  0.1243  0.0568 0.4588 0.1707   0.0314  0.0503
95                建筑业  2020  0.0866  0.0937 0.6508 0.1371   0.0085  0.0254
120              房地产业  2020  0.0466  0.1409 0.6432 0.1345  -0.0035  0.1168
145            批发和零售业  2020  0.1360  0.0555 0.5426 0.1707   0.0118  0.0118
170  电力、热力、燃气及水生产和供应业  2020  0.1014  0.1842 0.5597 0.0965   0.0282  0.0785
195               金融业  2020  0.0349  0.0531 0.7487 0.1689  -0.1048 -0.1841
21              交通运输业  2021  0.0720  0.1406 0.4530 0.1318   0.0376  0.0352
46               其他行业  2021  0.0889  0.0781 0.4260 0.1930   0.0171 -0.0276
71                制造业  2021  0.1005  0.0565 0.3919 0.1674   0.0461  0.0230
96                建筑业  2021  0.0805  0.0880 0.6763 0.1307  -0.0328 -0.3335
121              房地产业  2021  0.0407  0.1258 0.6574 0.1128   0.0035 -0.0536
146            批发和零售业  2021  0.1192  0.0553 0.5361 0.1597   0.0192 -0.0121
171  电力、热力、燃气及水生产和供应业  2021  0.0941  0.1935 0.5724 0.1002   0.0095 -0.0553
196               金融业  2021  0.0344  0.0423 0.7755 0.1656   0.0038  0.0843
22              交通运输业  2022  0.0734  0.1348 0.4478 0.1473   0.0328 -0.3942
47               其他行业  2022  0.0843  0.0751 0.4117 0.1984   0.0039 -0.0406
72                制造业  2022  0.0916  0.0614 0.3815 0.1779   0.0370  0.0470
97                建筑业  2022  0.0810  0.0893 0.6974 0.1234  -0.0215  0.0909
122              房地产业  2022  0.0427  0.1289 0.6654 0.1090  -0.0116 -0.0665
147            批发和零售业  2022  0.1254  0.0528 0.5411 0.1465   0.0144 -0.0168
172  电力、热力、燃气及水生产和供应业  2022  0.0878  0.2031 0.5561 0.1118   0.0244  0.0627
197               金融业  2022  0.0368  0.0402 0.7843 0.1639   0.0041 -0.0617
23              交通运输业  2023  0.0720  0.1424 0.4402 0.1390   0.0368  0.0745
48               其他行业  2023  0.0813  0.0816 0.4036 0.1981   0.0094  0.9045
73                制造业  2023  0.0844  0.0695 0.3796 0.1766   0.0269  0.0250
98                建筑业  2023  0.0694  0.1041 0.6851 0.1233  -0.0015 -0.1590
123              房地产业  2023  0.0441  0.1361 0.6233 0.1141  -0.0011 -0.0476
148            批发和零售业  2023  0.1222  0.0575 0.5354 0.1495   0.0049 -0.0009
173  电力、热力、燃气及水生产和供应业  2023  0.0800  0.2187 0.5474 0.1047   0.0324  0.1107
198               金融业  2023  0.0282  0.0509 0.7709 0.1602   0.0080  0.0444
24              交通运输业  2024  0.0410  0.1501 0.4101 0.1340   0.0465  0.0709
49               其他行业  2024  0.0864  0.0805 0.4194 0.1548   0.0068 -0.0007
74                制造业  2024  0.0838  0.0700 0.3924 0.1589   0.0387  0.0737
99                建筑业  2024  0.0431  0.1260 0.6778 0.1512   0.0178 -0.0010
124              房地产业  2024  0.0159  0.1928 0.5790 0.1832  -0.0048 -0.0452
149            批发和零售业  2024  0.0950  0.0856 0.5226 0.1268   0.0158  0.0299
174  电力、热力、燃气及水生产和供应业  2024  0.0729  0.2388 0.5615 0.0917   0.0341  0.0657
199               金融业  2024  0.0170  0.0463 0.8081 0.1737   0.0137  0.0785

结果已保存至: /Users/wanshiqing/Desktop/industry_financial_metrics.xlsx
格式化结果已保存至: /Users/wanshiqing/Desktop/industry_financial_metrics_formatted.xlsx

按行业汇总的财务指标平均值:
                 行业  短期借款比率  长期借款比率    总负债率    现金比率    资产收益率  净资产收益率
0             交通运输业  12.75%   7.60%  69.84%  21.01%  940.90%   0.71%
1              其他行业  15.00%   5.89%  57.21%  17.43%    1.20%  17.83%
2               制造业  16.64%   4.92%  51.64%  16.93%   -7.17%   9.18%
3               建筑业  11.92%   7.40%  66.57%  14.95%   -0.22%   0.54%
4              房地产业   8.53%  10.66%  53.43%  15.12%    2.17%   3.23%
5            批发和零售业  11.80%   7.42%  48.92%  16.03%    3.24%   9.20%
6  电力、热力、燃气及水生产和供应业  10.87%  18.72%  52.61%  11.03%    3.05%   5.15%
7               金融业   8.51%   6.08%  73.06%  15.84%    1.43%   1.68%
行业汇总结果已保存至: /Users/wanshiqing/Desktop/industry_summary.xlsx
格式化行业汇总结果已保存至: /Users/wanshiqing/Desktop/industry_summary_formatted.xlsx
处理后的完整数据已保存至: /Users/wanshiqing/Desktop/processed_financial_data.xlsx

第七步处理完成!
import pandas as pd
import numpy as np
from openpyxl.styles import Border, Side, PatternFill, Font
from openpyxl.utils import get_column_letter

# 1. 读取文件
input_path = '/Users/wanshiqing/Desktop/python_code/merged_data.xlsx'
print(f"正在读取文件: {input_path}")
df = pd.read_excel(input_path)
print(f"数据读取成功! 共 {len(df)} 行记录")

# 2. 计算并新增字段
print("\n计算并新增财务指标字段...")
def safe_divide(numerator, denominator):
    """安全除法函数,处理分母为零的情况"""
    return np.where(denominator != 0, numerator / denominator, np.nan)

# 确保所需字段存在
required_fields = ['短期借款', '长期借款', '负债合计', '资产总计', '期末现金及现金等价物余额', 
                  '净利润', '所有者权益合计']
for field in required_fields:
    if field not in df.columns:
        print(f"警告: 字段 '{field}' 不存在,尝试查找替代字段...")
        possible_cols = [col for col in df.columns if field in col or field.lower() in col.lower()]
        if possible_cols:
            df.rename(columns={possible_cols[0]: field}, inplace=True)
            print(f"  使用替代字段: {possible_cols[0]} 作为 {field}")
        else:
            raise ValueError(f"无法找到必需的字段: {field}")

# 计算新增字段
df['SLoan'] = safe_divide(df['短期借款'], df['资产总计'])
df['LLoan'] = safe_divide(df['长期借款'], df['资产总计'])
df['Lev'] = safe_divide(df['负债合计'], df['资产总计'])
df['Cash'] = safe_divide(df['期末现金及现金等价物余额'], df['资产总计'])
df['ROA'] = safe_divide(df['净利润'], df['资产总计'])
df['ROE'] = safe_divide(df['净利润'], df['所有者权益合计'])

# 3. 创建行业字段
print("\n创建行业字段...")
industry_mapping = {
    'C': '制造业',
    'D': '电力、热力、燃气及水生产和供应业',
    'G': '交通运输业',
    'E': '建筑业',
    'K': '房地产业',
    'F': '批发和零售业',
    'J': '金融业'
}

# 确保行业代码字段存在
if '行业代码' not in df.columns:
    possible_cols = [col for col in df.columns if '行业' in col or 'industry' in col.lower()]
    if possible_cols:
        print(f"使用替代字段作为行业代码: {possible_cols[0]}")
        industry_col = possible_cols[0]
    else:
        raise ValueError("无法找到行业代码字段")
else:
    industry_col = '行业代码'

# 将行业代码转换为字符串类型
df[industry_col] = df[industry_col].astype(str)
df['行业首字母'] = df[industry_col].str[0]
df['行业'] = df['行业首字母'].map(industry_mapping)

# 处理无法映射的行业代码
unknown_industries = df[df['行业'].isna()]['行业首字母'].unique()
if len(unknown_industries) > 0:
    print(f"发现无法映射的行业代码: {unknown_industries}")
    df['行业'] = df['行业'].fillna('其他行业')

# 4. 按'行业'和'时间'分组,计算平均值
print("\n按行业和时间分组计算平均值...")
df = df[df['时间'] >= 2000]
grouped = df.groupby(['行业', '时间']).agg({
    'SLoan': 'mean',
    'LLoan': 'mean',
    'Lev': 'mean',
    'Cash': 'mean',
    'ROA': 'mean',
    'ROE': 'mean'
}).reset_index()

# 重命名列
grouped.rename(columns={
    'SLoan': '短期借款比率',
    'LLoan': '长期借款比率',
    'Lev': '总负债率',
    'Cash': '现金比率',
    'ROA': '资产收益率',
    'ROE': '净资产收益率'
}, inplace=True)

# 按时间和行业排序
grouped = grouped.sort_values(['时间', '行业'])

# 5. 创建美观的实线表格
print("\n创建美观的实线表格...")

# 定义样式函数
def format_table(styler):
    # 设置百分比格式
    styler.format({
        '短期借款比率': '{:.2%}',
        '长期借款比率': '{:.2%}',
        '总负债率': '{:.2%}',
        '现金比率': '{:.2%}',
        '资产收益率': '{:.2%}',
        '净资产收益率': '{:.2%}'
    })
    
    # 设置表头样式
    styler.set_table_styles([
        {'selector': 'th', 'props': [
            ('border', '1px solid black'),
            ('background-color', '#4F81BD'),
            ('color', 'white'),
            ('font-weight', 'bold'),
            ('text-align', 'center')
        ]},
        {'selector': 'td', 'props': [
            ('border', '1px solid black'),
            ('text-align', 'center')
        ]},
        {'selector': 'tr:nth-child(even)', 'props': [
            ('background-color', '#DCE6F1')
        ]},
        {'selector': 'tr:nth-child(odd)', 'props': [
            ('background-color', 'white')
        ]}
    ])
    
    # 设置列宽
    styler.set_properties(**{
        'width': '100px',
        'max-width': '100px'
    })
    
    return styler

# 应用样式
styled_table = grouped.style.pipe(format_table)

# 保存为HTML
html_output_path = '/Users/wanshiqing/Desktop/industry_financial_metrics.html'
with open(html_output_path, 'w') as f:
    f.write(styled_table.to_html())
print(f"HTML表格已保存至: {html_output_path}")

# 保存为带格式的Excel
def apply_excel_formatting(writer, df, sheet_name='Sheet1'):
    """应用Excel格式设置"""
    workbook = writer.book
    worksheet = writer.sheets[sheet_name]
    
    # 定义边框样式
    thin_border = Border(
        left=Side(style='thin'),
        right=Side(style='thin'),
        top=Side(style='thin'),
        bottom=Side(style='thin')
    )
    
    # 定义填充颜色
    header_fill = PatternFill(start_color='4F81BD', end_color='4F81BD', fill_type='solid')
    even_row_fill = PatternFill(start_color='DCE6F1', end_color='DCE6F1', fill_type='solid')
    odd_row_fill = PatternFill(start_color='FFFFFF', end_color='FFFFFF', fill_type='solid')
    
    # 定义字体
    header_font = Font(color='FFFFFF', bold=True)
    data_font = Font()
    
    # 设置列宽
    for i, col in enumerate(df.columns):
        col_letter = get_column_letter(i + 1)
        worksheet.column_dimensions[col_letter].width = 15
    
    # 应用格式到所有单元格
    for row in range(0, len(df) + 1):
        for col in range(0, len(df.columns)):
            cell = worksheet.cell(row=row + 1, column=col + 1)
            cell.border = thin_border
            
            # 表头样式
            if row == 0:
                cell.fill = header_fill
                cell.font = header_font
            # 数据行样式
            else:
                if row % 2 == 0:
                    cell.fill = even_row_fill
                else:
                    cell.fill = odd_row_fill
                cell.font = data_font
    
    # 冻结首行
    worksheet.freeze_panes = 'A2'

# 保存为Excel
excel_output_path = '/Users/wanshiqing/Desktop/industry_financial_metrics.xlsx'
with pd.ExcelWriter(excel_output_path, engine='openpyxl') as writer:
    grouped.to_excel(writer, index=False, sheet_name='行业财务指标')
    apply_excel_formatting(writer, grouped, sheet_name='行业财务指标')
print(f"带格式的Excel表格已保存至: {excel_output_path}")

# 创建行业汇总表
industry_summary = grouped.groupby('行业').agg({
    '短期借款比率': 'mean',
    '长期借款比率': 'mean',
    '总负债率': 'mean',
    '现金比率': 'mean',
    '资产收益率': 'mean',
    '净资产收益率': 'mean'
}).reset_index()

# 应用样式到汇总表
styled_summary = industry_summary.style.pipe(format_table)

# 保存汇总表
summary_html_path = '/Users/wanshiqing/Desktop/industry_summary.html'
with open(summary_html_path, 'w') as f:
    f.write(styled_summary.to_html())
print(f"行业汇总HTML表格已保存至: {summary_html_path}")

# 保存汇总表到Excel
summary_excel_path = '/Users/wanshiqing/Desktop/industry_summary.xlsx'
with pd.ExcelWriter(summary_excel_path, engine='openpyxl') as writer:
    industry_summary.to_excel(writer, index=False, sheet_name='行业汇总')
    apply_excel_formatting(writer, industry_summary, sheet_name='行业汇总')
print(f"行业汇总Excel表格已保存至: {summary_excel_path}")

# 保存处理后的完整数据
full_output_path = '/Users/wanshiqing/Desktop/processed_financial_data.xlsx'
df.to_excel(full_output_path, index=False)
print(f"处理后的完整数据已保存至: {full_output_path}")

print("\n第七步处理完成!")
正在读取文件: /Users/wanshiqing/Desktop/python_code/merged_data.xlsx
数据读取成功! 共 145874 行记录

计算并新增财务指标字段...

创建行业字段...
发现无法映射的行业代码: ['I' 'M' 'n' 'N' 'H' 'S' 'L' 'A' 'Q' 'R' 'B' 'P' 'O']

按行业和时间分组计算平均值...

创建美观的实线表格...
HTML表格已保存至: /Users/wanshiqing/Desktop/industry_financial_metrics.html
带格式的Excel表格已保存至: /Users/wanshiqing/Desktop/industry_financial_metrics.xlsx
行业汇总HTML表格已保存至: /Users/wanshiqing/Desktop/industry_summary.html
行业汇总Excel表格已保存至: /Users/wanshiqing/Desktop/industry_summary.xlsx
处理后的完整数据已保存至: /Users/wanshiqing/Desktop/processed_financial_data.xlsx

第七步处理完成!
import pandas as pd
import numpy as np
from tabulate import tabulate

# 1. 读取文件
input_path = '/Users/wanshiqing/Desktop/python_code/merged_data.xlsx'
print(f"正在读取文件: {input_path}")
df = pd.read_excel(input_path)
print(f"数据读取成功! 共 {len(df)} 行记录")

# 2. 计算并新增字段
print("\n计算并新增财务指标字段...")
def safe_divide(numerator, denominator):
    """安全除法函数,处理分母为零的情况"""
    return np.where(denominator != 0, numerator / denominator, np.nan)

# 确保所需字段存在
required_fields = ['短期借款', '长期借款', '负债合计', '资产总计', '期末现金及现金等价物余额', 
                  '净利润', '所有者权益合计']
for field in required_fields:
    if field not in df.columns:
        print(f"警告: 字段 '{field}' 不存在,尝试查找替代字段...")
        possible_cols = [col for col in df.columns if field in col or field.lower() in col.lower()]
        if possible_cols:
            df.rename(columns={possible_cols[0]: field}, inplace=True)
            print(f"  使用替代字段: {possible_cols[0]} 作为 {field}")
        else:
            raise ValueError(f"无法找到必需的字段: {field}")

# 计算新增字段
df['SLoan'] = safe_divide(df['短期借款'], df['资产总计'])
df['LLoan'] = safe_divide(df['长期借款'], df['资产总计'])
df['Lev'] = safe_divide(df['负债合计'], df['资产总计'])
df['Cash'] = safe_divide(df['期末现金及现金等价物余额'], df['资产总计'])
df['ROA'] = safe_divide(df['净利润'], df['资产总计'])
df['ROE'] = safe_divide(df['净利润'], df['所有者权益合计'])

# 3. 创建行业字段
print("\n创建行业字段...")
industry_mapping = {
    'C': '制造业',
    'D': '电力、热力、燃气及水生产和供应业',
    'G': '交通运输业',
    'E': '建筑业',
    'K': '房地产业',
    'F': '批发和零售业',
    'J': '金融业'
}

# 确保行业代码字段存在
if '行业代码' not in df.columns:
    possible_cols = [col for col in df.columns if '行业' in col or 'industry' in col.lower()]
    if possible_cols:
        print(f"使用替代字段作为行业代码: {possible_cols[0]}")
        industry_col = possible_cols[0]
    else:
        raise ValueError("无法找到行业代码字段")
else:
    industry_col = '行业代码'

# 将行业代码转换为字符串类型
df[industry_col] = df[industry_col].astype(str)
df['行业首字母'] = df[industry_col].str[0]
df['行业'] = df['行业首字母'].map(industry_mapping)

# 处理无法映射的行业代码
unknown_industries = df[df['行业'].isna()]['行业首字母'].unique()
if len(unknown_industries) > 0:
    print(f"发现无法映射的行业代码: {unknown_industries}")
    df['行业'] = df['行业'].fillna('其他行业')

# 4. 按'行业'和'时间'分组,计算平均值
print("\n按行业和时间分组计算平均值...")
df = df[df['时间'] >= 2000]
grouped = df.groupby(['行业', '时间']).agg({
    'SLoan': 'mean',
    'LLoan': 'mean',
    'Lev': 'mean',
    'Cash': 'mean',
    'ROA': 'mean',
    'ROE': 'mean'
}).reset_index()

# 重命名列
grouped.rename(columns={
    'SLoan': '短期借款比率',
    'LLoan': '长期借款比率',
    'Lev': '总负债率',
    'Cash': '现金比率',
    'ROA': '资产收益率',
    'ROE': '净资产收益率'
}, inplace=True)

# 按时间和行业排序
grouped = grouped.sort_values(['时间', '行业'])

# 5. 在控制台输出美观的实线表格
print("\n按行业和时间分组的财务指标平均值:")

# 格式化百分比列
def format_percent(value):
    """将数值格式化为百分比字符串"""
    if pd.isnull(value):
        return ""
    return f"{value:.2%}"

# 应用格式化
formatted_grouped = grouped.copy()
for col in ['短期借款比率', '长期借款比率', '总负债率', '现金比率', '资产收益率', '净资产收益率']:
    formatted_grouped[col] = formatted_grouped[col].apply(format_percent)

# 使用tabulate创建美观的表格
table = tabulate(
    formatted_grouped,
    headers=[
        '行业', '年份', 
        '短期借款比率', '长期借款比率', 
        '总负债率', '现金比率',
        '资产收益率', '净资产收益率'
    ],
    tablefmt='grid',
    stralign='center',
    numalign='center',
    showindex=False
)

# 打印表格
print(table)

# 6. 按行业汇总并输出
print("\n\n按行业汇总的财务指标平均值:")

# 计算行业平均值
industry_summary = grouped.groupby('行业').agg({
    '短期借款比率': 'mean',
    '长期借款比率': 'mean',
    '总负债率': 'mean',
    '现金比率': 'mean',
    '资产收益率': 'mean',
    '净资产收益率': 'mean'
}).reset_index()

# 应用格式化
formatted_summary = industry_summary.copy()
for col in ['短期借款比率', '长期借款比率', '总负债率', '现金比率', '资产收益率', '净资产收益率']:
    formatted_summary[col] = formatted_summary[col].apply(format_percent)

# 创建汇总表格
summary_table = tabulate(
    formatted_summary,
    headers=[
        '行业', 
        '短期借款比率', '长期借款比率', 
        '总负债率', '现金比率',
        '资产收益率', '净资产收益率'
    ],
    tablefmt='grid',
    stralign='center',
    numalign='center',
    showindex=False
)

# 打印汇总表格
print(summary_table)

# 7. 输出行业分布统计
print("\n\n行业分布统计:")
industry_counts = df['行业'].value_counts().reset_index()
industry_counts.columns = ['行业', '公司数量']
industry_counts_table = tabulate(
    industry_counts,
    headers=['行业', '公司数量'],
    tablefmt='grid',
    stralign='center',
    numalign='center',
    showindex=False
)
print(industry_counts_table)

print("\n第七步处理完成!")
正在读取文件: /Users/wanshiqing/Desktop/python_code/merged_data.xlsx
数据读取成功! 共 145874 行记录

计算并新增财务指标字段...

创建行业字段...
发现无法映射的行业代码: ['I' 'M' 'n' 'N' 'H' 'S' 'L' 'A' 'Q' 'R' 'B' 'P' 'O']

按行业和时间分组计算平均值...

按行业和时间分组的财务指标平均值:
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|               行业               |  年份  |  短期借款比率  |  长期借款比率  |  总负债率  |  现金比率  |  资产收益率  |  净资产收益率  |
+==================================+========+================+================+============+============+==============+================+
|            交通运输业            |  2000  |     16.34%     |     2.55%      |   43.52%   |   21.27%   |    5.10%     |     8.94%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2000  |     22.89%     |     4.81%      |   52.70%   |   15.06%   |    1.24%     |     -2.90%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2000  |     15.64%     |     5.18%      |   42.53%   |   16.49%   |    3.40%     |     3.85%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2000  |     20.16%     |     3.72%      |   58.59%   |   13.26%   |    1.68%     |     -1.40%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2000  |     10.05%     |     6.27%      |   33.74%   |   17.97%   |    3.54%     |     2.60%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2000  |     11.44%     |     7.57%      |   41.43%   |   17.86%   |    4.53%     |     7.90%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2000  |     8.59%      |     8.18%      |   35.02%   |   14.16%   |    5.08%     |     8.68%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2000  |     21.99%     |     3.45%      |   49.28%   |   11.12%   |    1.74%     |     3.91%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2001  |     19.46%     |     2.74%      |   47.08%   |   23.60%   |    1.85%     |     12.64%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2001  |     23.85%     |     6.33%      |   60.50%   |   15.46%   |    -4.35%    |     -0.13%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2001  |     18.15%     |     5.52%      |   47.59%   |   17.99%   |    -2.26%    |     1.21%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2001  |     17.44%     |     4.05%      |   58.85%   |   16.25%   |    0.85%     |     1.37%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2001  |     10.28%     |     6.20%      |   35.72%   |   19.02%   |    3.86%     |     6.36%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2001  |     10.23%     |     8.93%      |   35.71%   |   16.76%   |    4.46%     |     6.61%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2001  |     8.06%      |     9.36%      |   34.27%   |   15.06%   |    5.32%     |     8.41%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2001  |     23.39%     |     3.87%      |   59.41%   |   13.58%   |    0.03%     |    -33.61%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2002  |     19.51%     |     2.54%      |   48.26%   |   24.25%   |    1.53%     |     1.29%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2002  |     24.88%     |     4.32%      |   62.60%   |   13.98%   |    -6.41%    |     2.59%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2002  |     18.76%     |     5.29%      |   49.51%   |   16.51%   |    -0.82%    |     36.96%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2002  |     14.91%     |     5.92%      |   58.31%   |   14.67%   |    0.59%     |     -5.18%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2002  |     12.32%     |     3.52%      |   36.52%   |   15.11%   |    3.78%     |     5.19%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2002  |     10.93%     |     7.91%      |   36.25%   |   15.12%   |    4.01%     |     5.42%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2002  |     9.95%      |     12.11%     |   38.95%   |   14.81%   |    4.37%     |     7.18%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2002  |     21.75%     |     5.09%      |   56.45%   |   13.46%   |    -4.85%    |    -29.99%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2003  |     20.75%     |     2.07%      |   51.40%   |   24.48%   |    -7.24%    |     5.89%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2003  |     27.73%     |     4.44%      |   72.74%   |   14.15%   |    -2.93%    |     2.24%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2003  |     19.42%     |     5.50%      |   50.41%   |   15.49%   |    1.59%     |     0.58%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2003  |     16.90%     |     6.28%      |   60.71%   |   15.70%   |    -1.67%    |     7.45%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2003  |     14.79%     |     5.33%      |   40.85%   |   13.14%   |    0.94%     |     5.38%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2003  |     12.35%     |     8.13%      |   36.07%   |   15.31%   |    4.16%     |     3.17%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2003  |     10.41%     |     14.39%     |   41.76%   |   11.97%   |    4.44%     |     7.19%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2003  |     21.83%     |     6.18%      |   60.16%   |   13.26%   |    0.23%     |    -22.58%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2004  |     27.31%     |     1.52%      |   69.22%   |   21.84%   |   -26.16%    |     5.63%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2004  |     27.98%     |     4.89%      |   76.73%   |   14.09%   |    -5.19%    |     -0.33%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2004  |     20.54%     |     5.60%      |   54.53%   |   15.25%   |    0.17%     |     -4.72%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2004  |     17.13%     |     5.91%      |   73.06%   |   15.93%   |    -6.80%    |     7.38%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2004  |     15.02%     |     6.85%      |   45.63%   |   12.50%   |    3.66%     |     7.33%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2004  |     11.68%     |     7.60%      |   38.06%   |   27.36%   |    5.26%     |     7.17%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2004  |     11.89%     |     17.56%     |   45.44%   |   11.07%   |    3.71%     |     7.39%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2004  |     21.50%     |     7.43%      |   66.55%   |   13.09%   |    2.65%     |     2.59%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2005  |     21.25%     |     1.68%      |   64.84%   |   59.56%   |    -8.16%    |     0.68%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2005  |     25.19%     |     4.88%      |   77.25%   |   12.86%   |    -0.77%    |    -21.77%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2005  |     22.61%     |     5.25%      |   64.12%   |   22.34%   |    -2.05%    |     1.35%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2005  |     15.00%     |     7.97%      |   65.77%   |   12.90%   |    2.01%     |     6.34%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2005  |     15.55%     |     7.53%      |   47.73%   |   11.37%   |    2.57%     |     1.21%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2005  |     11.80%     |     8.80%      |   43.23%   |   13.35%   |    1.41%     |     12.34%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2005  |     11.89%     |     18.98%     |   48.91%   |   9.26%    |    2.25%     |     -2.85%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2005  |     20.39%     |     7.55%      |   73.13%   |   11.71%   |    0.31%     |     2.93%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2006  |     27.90%     |     1.70%      |   91.16%   |   22.04%   |   -18.07%    |     4.81%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2006  |     23.64%     |     5.08%      |   82.76%   |   13.30%   |    0.82%     |    143.31%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2006  |     76.99%     |     5.06%      |  169.35%   |   13.33%   |   -255.87%   |     59.48%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2006  |     13.52%     |     6.73%      |   64.36%   |   15.97%   |    2.47%     |     6.80%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2006  |     12.87%     |     7.24%      |   47.58%   |   13.10%   |    2.72%     |     3.48%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2006  |     13.62%     |     9.56%      |   48.58%   |   13.81%   |    3.55%     |     11.83%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2006  |     14.43%     |     18.82%     |   52.53%   |   25.59%   |    3.05%     |     6.43%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2006  |     14.38%     |     10.87%     |   64.89%   |   10.83%   |    2.28%     |     -3.39%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2007  |     24.70%     |     1.98%      |  202.35%   |   24.01%   |   781.51%    |     -1.15%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2007  |     20.82%     |     5.20%      |   82.73%   |   15.65%   |    4.07%     |     8.36%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2007  |     22.24%     |     4.61%      |   70.52%   |   14.20%   |    8.84%     |     7.59%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2007  |     14.32%     |     6.31%      |   67.75%   |   15.25%   |    2.85%     |     10.39%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2007  |     13.00%     |     6.21%      |   43.44%   |   16.95%   |    6.97%     |     12.68%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2007  |     15.73%     |     10.23%     |   57.40%   |   12.60%   |    6.06%     |    265.64%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2007  |     15.26%     |     18.92%     |   53.05%   |   8.45%    |    3.81%     |     8.05%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2007  |     9.73%      |     11.63%     |   70.34%   |   15.18%   |    9.94%     |     2.00%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2008  |     14.13%     |     1.08%      |  225.89%   |   25.29%   |  22778.90%   |    -158.04%    |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2008  |     22.05%     |     5.46%      |  102.86%   |   15.70%   |    -4.18%    |     12.50%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2008  |     20.72%     |     4.57%      |   64.15%   |   14.45%   |    2.06%     |     1.17%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2008  |     14.49%     |     7.24%      |   69.90%   |   13.15%   |    0.60%     |     3.79%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2008  |     14.56%     |     6.43%      |   43.88%   |   13.75%   |    3.53%     |     8.95%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2008  |     10.82%     |     11.79%     |   45.95%   |   12.36%   |    6.78%     |    -11.13%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2008  |     17.02%     |     24.19%     |   60.54%   |   8.13%    |    -0.26%    |     -4.17%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2008  |     9.41%      |     11.42%     |   76.63%   |   11.47%   |    5.63%     |     7.74%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2009  |     11.45%     |     1.56%      |  205.86%   |   34.51%   |   -40.08%    |     12.20%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2009  |     15.21%     |     6.03%      |   79.77%   |   18.05%   |    2.38%     |     8.47%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2009  |     16.25%     |     5.35%      |   56.28%   |   18.71%   |    4.43%     |    -26.28%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2009  |     10.03%     |     7.76%      |   68.09%   |   19.03%   |    2.14%     |     6.70%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2009  |     14.98%     |     6.73%      |   49.25%   |   21.35%   |    -4.11%    |     11.26%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2009  |     8.58%      |     12.20%     |   44.76%   |   14.00%   |    4.07%     |     7.64%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2009  |     14.16%     |     24.51%     |   61.80%   |   8.97%    |    1.50%     |     10.43%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2009  |     6.23%      |     13.95%     |  117.00%   |   16.72%   |    4.22%     |     9.63%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2010  |     8.49%      |     1.15%      |   66.82%   |   40.39%   |    -0.14%    |     9.13%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2010  |     11.13%     |     6.00%      |   70.35%   |   21.16%   |    5.10%     |     13.11%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2010  |     12.65%     |     4.20%      |   48.79%   |   23.98%   |    5.05%     |     11.48%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2010  |     7.64%      |     8.33%      |   65.43%   |   20.21%   |    4.29%     |     12.15%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2010  |     10.91%     |     6.44%      |   46.88%   |   24.88%   |    5.80%     |     -4.76%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2010  |     7.22%      |     14.25%     |   44.49%   |   14.65%   |    5.46%     |     9.59%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2010  |     12.98%     |     23.09%     |   59.80%   |   10.27%   |    2.89%     |     5.50%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2010  |     6.06%      |     14.14%     |   68.41%   |   15.51%   |    3.10%     |     14.72%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2011  |     5.52%      |     1.59%      |   35.84%   |   39.38%   |    6.15%     |     9.62%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2011  |     10.87%     |     4.91%      |   61.65%   |   20.68%   |    9.41%     |    163.09%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2011  |     12.49%     |     3.34%      |   44.28%   |   22.34%   |    6.21%     |     55.38%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2011  |     9.88%      |     6.57%      |   65.20%   |   19.40%   |    3.50%     |     10.59%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2011  |     7.41%      |     6.22%      |   38.71%   |   26.76%   |    5.12%     |     8.52%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2011  |     6.74%      |     12.65%     |   45.78%   |   14.69%   |    4.53%     |     4.05%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2011  |     12.64%     |     22.52%     |   60.76%   |   9.24%    |    2.40%     |     4.83%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2011  |     5.36%      |     12.99%     |   62.64%   |   12.44%   |    3.24%     |     10.62%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2012  |     7.74%      |     11.15%     |   45.82%   |   13.67%   |    4.52%     |     13.51%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2012  |     8.93%      |     4.34%      |   47.85%   |   24.37%   |    4.36%     |     13.72%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2012  |     11.80%     |     2.99%      |   42.86%   |   20.51%   |    3.83%     |     7.85%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2012  |     10.67%     |     6.36%      |   65.86%   |   16.42%   |    3.20%     |     9.21%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2012  |     5.27%      |     13.73%     |   62.84%   |   12.77%   |    3.04%     |     10.08%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2012  |     13.35%     |     3.05%      |   55.12%   |   20.32%   |    3.67%     |     8.41%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2012  |     11.34%     |     19.58%     |   57.89%   |   9.63%    |    3.01%     |     7.03%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2012  |     0.21%      |     0.02%      |   70.09%   |   28.08%   |    1.98%     |     10.60%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2013  |     11.11%     |     11.04%     |   55.58%   |   12.12%   |    -5.24%    |     6.32%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2013  |     8.83%      |     4.37%      |   40.93%   |   20.97%   |    7.07%     |     50.23%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2013  |     11.72%     |     2.98%      |   41.37%   |   16.72%   |    11.26%    |     25.25%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2013  |     10.02%     |     7.35%      |   68.62%   |   15.50%   |    2.70%     |     7.75%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2013  |     5.28%      |     16.35%     |   62.76%   |   12.46%   |    3.09%     |     9.14%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2013  |     13.28%     |     3.64%      |   56.35%   |   18.74%   |    3.10%     |     6.68%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2013  |     10.46%     |     19.00%     |   57.01%   |   9.30%    |    4.12%     |     7.80%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2013  |     0.60%      |     0.43%      |   73.35%   |   21.08%   |    2.36%     |     12.04%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2014  |     6.85%      |     11.04%     |   45.25%   |   11.72%   |    13.94%    |     60.70%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2014  |     8.64%      |     4.27%      |   41.52%   |   18.35%   |    4.23%     |     4.80%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2014  |     11.19%     |     2.73%      |   45.27%   |   15.00%   |    0.41%     |     0.21%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2014  |     9.90%      |     6.07%      |   68.36%   |   12.86%   |    2.41%     |     7.58%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2014  |     5.69%      |     15.52%     |   63.35%   |   10.53%   |    1.84%     |     -1.42%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2014  |     13.00%     |     3.71%      |   58.01%   |   17.33%   |    2.28%     |     0.92%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2014  |     8.64%      |     18.92%     |   56.16%   |   9.70%    |    3.23%     |     6.72%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2014  |     0.69%      |     0.99%      |   79.69%   |   20.83%   |    2.82%     |     13.89%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2015  |     5.95%      |     10.39%     |   43.58%   |   12.15%   |    4.49%     |     8.29%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2015  |     8.33%      |     3.74%      |   40.96%   |   18.34%   |    4.29%     |     7.64%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2015  |     10.43%     |     2.62%      |   39.79%   |   15.43%   |    3.22%     |     1.79%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2015  |     10.52%     |     5.88%      |   64.28%   |   14.90%   |    2.46%     |     6.77%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2015  |     6.23%      |     14.08%     |   63.98%   |   13.08%   |    0.80%     |     3.15%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2015  |     12.36%     |     3.43%      |   54.52%   |   16.94%   |    2.73%     |     4.05%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2015  |     9.00%      |     18.36%     |   54.95%   |   10.24%   |    4.17%     |     7.84%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2015  |     1.39%      |     0.68%      |   80.49%   |   23.19%   |    2.94%     |     15.81%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2016  |     5.86%      |     13.02%     |   43.61%   |   11.81%   |    3.78%     |     5.75%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2016  |     7.25%      |     7.05%      |   39.15%   |   19.43%   |    4.65%     |     7.14%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2016  |     8.88%      |     4.62%      |   38.42%   |   15.95%   |    4.80%     |     9.01%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2016  |     9.21%      |     7.54%      |   61.33%   |   15.83%   |    2.05%     |     6.20%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2016  |     4.12%      |     15.36%     |   64.38%   |   16.57%   |    1.94%     |     7.34%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2016  |     10.35%     |     5.69%      |   52.05%   |   17.05%   |    2.97%     |     5.54%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2016  |     7.27%      |     19.19%     |   53.53%   |   9.51%    |    3.78%     |     7.98%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2016  |     1.42%      |     2.13%      |   78.72%   |   18.00%   |    1.71%     |     9.50%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2017  |     9.60%      |     12.87%     |   42.07%   |   12.85%   |    5.34%     |     9.33%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2017  |     10.81%     |     7.24%      |   39.94%   |   18.07%   |    3.79%     |    -17.38%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2017  |     12.10%     |     5.27%      |   38.20%   |   15.24%   |    4.77%     |     18.55%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2017  |     11.37%     |     8.34%      |   61.82%   |   14.32%   |    -0.26%    |    -47.27%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2017  |     6.26%      |     15.74%     |   64.24%   |   14.75%   |    2.78%     |     8.13%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2017  |     13.21%     |     5.66%      |   52.58%   |   17.01%   |    2.49%     |     -5.70%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2017  |     11.56%     |     19.54%     |   53.23%   |   10.89%   |    2.79%     |     4.19%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2017  |     4.20%      |     5.89%      |   77.41%   |   14.73%   |    1.48%     |     8.13%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2018  |     10.37%     |     12.68%     |   47.10%   |   11.37%   |    -0.51%    |     7.54%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2018  |     11.61%     |     7.27%      |   45.82%   |   16.31%   |    -4.07%    |    -38.08%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2018  |     12.61%     |     5.34%      |   40.40%   |   13.75%   |    2.98%     |     -0.25%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2018  |     18.76%     |     7.93%      |   92.98%   |   13.30%   |   -28.83%    |     -5.85%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2018  |     4.74%      |     14.66%     |   64.34%   |   13.85%   |    1.96%     |    -19.15%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2018  |     14.20%     |     4.88%      |   54.68%   |   15.71%   |    1.18%     |    -117.53%    |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2018  |     11.65%     |     18.63%     |   54.76%   |   10.10%   |    1.86%     |     -3.57%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2018  |     3.58%      |     4.73%      |   76.85%   |   13.31%   |    0.96%     |     6.38%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2019  |     9.32%      |     14.33%     |   47.43%   |   11.32%   |    3.73%     |     10.92%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2019  |     10.67%     |     7.20%      |   43.13%   |   16.59%   |    1.11%     |     0.99%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2019  |     12.42%     |     5.47%      |   42.16%   |   14.50%   |    0.78%     |     -2.76%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2019  |     10.21%     |     8.74%      |   66.17%   |   12.39%   |    1.32%     |     0.55%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2019  |     4.83%      |     13.61%     |   63.09%   |   12.60%   |    2.28%     |     4.94%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2019  |     14.27%     |     5.27%      |   54.21%   |   14.52%   |    1.65%     |     -3.84%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2019  |     11.00%     |     18.30%     |   55.16%   |   8.91%    |    1.72%     |     -2.43%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2019  |     3.53%      |     5.16%      |   76.19%   |   15.25%   |    0.41%     |     4.88%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2020  |     9.29%      |     14.46%     |   48.19%   |   12.28%   |    1.88%     |     5.20%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2020  |     9.69%      |     7.89%      |   42.25%   |   18.90%   |    1.77%     |     4.71%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2020  |     12.43%     |     5.68%      |   45.88%   |   17.07%   |    3.14%     |     5.03%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2020  |     8.66%      |     9.37%      |   65.08%   |   13.71%   |    0.85%     |     2.54%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2020  |     4.66%      |     14.09%     |   64.32%   |   13.45%   |    -0.35%    |     11.68%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2020  |     13.60%     |     5.55%      |   54.26%   |   17.07%   |    1.18%     |     1.18%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2020  |     10.14%     |     18.42%     |   55.97%   |   9.65%    |    2.82%     |     7.85%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2020  |     3.49%      |     5.31%      |   74.87%   |   16.89%   |   -10.48%    |    -18.41%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2021  |     7.20%      |     14.06%     |   45.30%   |   13.18%   |    3.76%     |     3.52%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2021  |     8.89%      |     7.81%      |   42.60%   |   19.30%   |    1.71%     |     -2.76%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2021  |     10.05%     |     5.65%      |   39.19%   |   16.74%   |    4.61%     |     2.30%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2021  |     8.05%      |     8.80%      |   67.63%   |   13.07%   |    -3.28%    |    -33.35%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2021  |     4.07%      |     12.58%     |   65.74%   |   11.28%   |    0.35%     |     -5.36%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2021  |     11.92%     |     5.53%      |   53.61%   |   15.97%   |    1.92%     |     -1.21%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2021  |     9.41%      |     19.35%     |   57.24%   |   10.02%   |    0.95%     |     -5.53%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2021  |     3.44%      |     4.23%      |   77.55%   |   16.56%   |    0.38%     |     8.43%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2022  |     7.34%      |     13.48%     |   44.78%   |   14.73%   |    3.28%     |    -39.42%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2022  |     8.43%      |     7.51%      |   41.17%   |   19.84%   |    0.39%     |     -4.06%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2022  |     9.16%      |     6.14%      |   38.15%   |   17.79%   |    3.70%     |     4.70%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2022  |     8.10%      |     8.93%      |   69.74%   |   12.34%   |    -2.15%    |     9.09%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2022  |     4.27%      |     12.89%     |   66.54%   |   10.90%   |    -1.16%    |     -6.65%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2022  |     12.54%     |     5.28%      |   54.11%   |   14.65%   |    1.44%     |     -1.68%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2022  |     8.78%      |     20.31%     |   55.61%   |   11.18%   |    2.44%     |     6.27%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2022  |     3.68%      |     4.02%      |   78.43%   |   16.39%   |    0.41%     |     -6.17%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2023  |     7.20%      |     14.24%     |   44.02%   |   13.90%   |    3.68%     |     7.45%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2023  |     8.13%      |     8.16%      |   40.36%   |   19.81%   |    0.94%     |     90.45%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2023  |     8.44%      |     6.95%      |   37.96%   |   17.66%   |    2.69%     |     2.50%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2023  |     6.94%      |     10.41%     |   68.51%   |   12.33%   |    -0.15%    |    -15.90%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2023  |     4.41%      |     13.61%     |   62.33%   |   11.41%   |    -0.11%    |     -4.76%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2023  |     12.22%     |     5.75%      |   53.54%   |   14.95%   |    0.49%     |     -0.09%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2023  |     8.00%      |     21.87%     |   54.74%   |   10.47%   |    3.24%     |     11.07%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2023  |     2.82%      |     5.09%      |   77.09%   |   16.02%   |    0.80%     |     4.44%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|            交通运输业            |  2024  |     4.10%      |     15.01%     |   41.01%   |   13.40%   |    4.65%     |     7.09%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |  2024  |     8.64%      |     8.05%      |   41.94%   |   15.48%   |    0.68%     |     -0.07%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |  2024  |     8.38%      |     7.00%      |   39.24%   |   15.89%   |    3.87%     |     7.37%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |  2024  |     4.31%      |     12.60%     |   67.78%   |   15.12%   |    1.78%     |     -0.10%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |  2024  |     1.59%      |     19.28%     |   57.90%   |   18.32%   |    -0.48%    |     -4.52%     |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |  2024  |     9.50%      |     8.56%      |   52.26%   |   12.68%   |    1.58%     |     2.99%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |  2024  |     7.29%      |     23.88%     |   56.15%   |   9.17%    |    3.41%     |     6.57%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |  2024  |     1.70%      |     4.63%      |   80.81%   |   17.37%   |    1.37%     |     7.85%      |
+----------------------------------+--------+----------------+----------------+------------+------------+--------------+----------------+


按行业汇总的财务指标平均值:
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
|               行业               |  短期借款比率  |  长期借款比率  |  总负债率  |  现金比率  |  资产收益率  |  净资产收益率  |
+==================================+================+================+============+============+==============+================+
|            交通运输业            |     12.75%     |     7.60%      |   69.84%   |   21.01%   |   940.90%    |     0.71%      |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
|             其他行业             |     15.00%     |     5.89%      |   57.21%   |   17.43%   |    1.20%     |     17.83%     |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
|              制造业              |     16.64%     |     4.92%      |   51.64%   |   16.93%   |    -7.17%    |     9.18%      |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
|              建筑业              |     11.92%     |     7.40%      |   66.57%   |   14.95%   |    -0.22%    |     0.54%      |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
|             房地产业             |     8.53%      |     10.66%     |   53.43%   |   15.12%   |    2.17%     |     3.23%      |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
|           批发和零售业           |     11.80%     |     7.42%      |   48.92%   |   16.03%   |    3.24%     |     9.20%      |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
| 电力、热力、燃气及水生产和供应业 |     10.87%     |     18.72%     |   52.61%   |   11.03%   |    3.05%     |     5.15%      |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+
|              金融业              |     8.51%      |     6.08%      |   73.06%   |   15.84%   |    1.43%     |     1.68%      |
+----------------------------------+----------------+----------------+------------+------------+--------------+----------------+


行业分布统计:
+----------------------------------+------------+
|               行业               |  公司数量  |
+==================================+============+
|             其他行业             |   92759    |
+----------------------------------+------------+
|              制造业              |   40346    |
+----------------------------------+------------+
|           批发和零售业           |    2770    |
+----------------------------------+------------+
|            交通运输业            |    2447    |
+----------------------------------+------------+
|             房地产业             |    2065    |
+----------------------------------+------------+
|              金融业              |    2027    |
+----------------------------------+------------+
| 电力、热力、燃气及水生产和供应业 |    2004    |
+----------------------------------+------------+
|              建筑业              |    1456    |
+----------------------------------+------------+

第七步处理完成!
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import matplotlib.font_manager as fm
import os

# 设置中文字体(适用于Mac系统)
try:
    # 尝试查找 macOS 系统自带的中文字体
    font_names = ['Songti SC', 'STHeiti', 'PingFang SC', 'Hiragino Sans GB', 'Arial Unicode MS']
    available_fonts = [f.name for f in fm.fontManager.ttflist]
    
    # 寻找可用的中文字体
    chinese_font = None
    for font in font_names:
        if font in available_fonts:
            chinese_font = font
            break
    
    # 如果找到可用字体,设置matplotlib使用它
    if chinese_font:
        plt.rcParams['font.sans-serif'] = [chinese_font]
        print(f"使用中文字体: {chinese_font}")
    else:
        print("未找到系统自带中文字体,使用英文标签")
        USE_CHINESE = False
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
except:
    print("字体设置失败,使用英文标签")
    USE_CHINESE = False

# 1. 读取文件
input_path = '/Users/wanshiqing/Desktop/python_code/merged_data.xlsx'
print(f"正在读取文件: {input_path}")
df = pd.read_excel(input_path)
print(f"数据读取成功! 共 {len(df)} 行记录")

# 2. 筛选指定年份的数据
selected_years = {2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017, 2019, 2021, 2023}
print(f"\n筛选年份: {sorted(selected_years)}")

# 确保时间字段存在
if '时间' not in df.columns:
    # 尝试查找可能的替代字段
    possible_cols = [col for col in df.columns if '时间' in col or 'year' in col.lower() or 'date' in col.lower()]
    if possible_cols:
        df.rename(columns={possible_cols[0]: '时间'}, inplace=True)
        print(f"使用替代字段作为时间: {possible_cols[0]}")
    else:
        raise ValueError("无法找到时间字段")

# 筛选数据
filtered_df = df[df['时间'].isin(selected_years)].copy()
print(f"筛选后数据量: {len(filtered_df)} 行")

# 3. 检查股权集中度1字段
if '股权集中度1' not in filtered_df.columns:
    # 尝试查找可能的替代字段
    possible_cols = [col for col in filtered_df.columns if '股权集中度' in col or 'top1' in col.lower()]
    if possible_cols:
        filtered_df.rename(columns={possible_cols[0]: '股权集中度1'}, inplace=True)
        print(f"使用替代字段作为股权集中度1: {possible_cols[0]}")
    else:
        raise ValueError("无法找到股权集中度1字段")

# 重命名列以便使用
filtered_df.rename(columns={'股权集中度1': 'Top1'}, inplace=True)

# 4. 绘制箱线图
plt.figure(figsize=(14, 8))

# 使用seaborn绘制箱线图
sns.boxplot(
    x='时间', 
    y='Top1', 
    data=filtered_df,
    palette='viridis',
    showfliers=True,  # 显示离群值
    flierprops=dict(marker='o', markersize=4, markerfacecolor='gray', alpha=0.5)  # 离群点样式
)

# 添加散点图显示数据分布
sns.stripplot(
    x='时间', 
    y='Top1', 
    data=filtered_df,
    color='black',
    alpha=0.3,
    jitter=0.2,
    size=3
)

# 设置标题和标签
if 'USE_CHINESE' in globals() and not USE_CHINESE:
    plt.title('Top1 Shareholder Concentration by Year (2001-2023)', fontsize=16)
    plt.xlabel('Year', fontsize=14)
    plt.ylabel('Top1 Concentration (%)', fontsize=14)
else:
    plt.title('股权集中度(Top1)年度分布 (2001-2023)', fontsize=16)
    plt.xlabel('年份', fontsize=14)
    plt.ylabel('股权集中度(Top1, %)', fontsize=14)

# 设置网格
plt.grid(True, linestyle='--', alpha=0.3, axis='y')

# 设置y轴为百分比格式
plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.0f}%'))

# 调整x轴标签
plt.xticks(rotation=45, fontsize=12)
plt.yticks(fontsize=12)

# 添加均值线
for year in selected_years:
    year_data = filtered_df[filtered_df['时间'] == year]['Top1']
    if not year_data.empty:
        mean_value = year_data.mean()
        plt.axhline(mean_value, color='red', linestyle='--', alpha=0.7)
        plt.text(
            list(selected_years).index(year) + 0.4, 
            mean_value + 0.5, 
            f'均值: {mean_value:.1f}%', 
            fontsize=10, 
            color='red'
        )

# 添加说明文字
plt.figtext(
    0.5, 0.01, 
    '注: 箱线图展示了股权集中度(Top1)的分布情况,包括中位数、四分位数和离群值。红色虚线表示各年份均值。',
    ha='center', 
    fontsize=12, 
    color='gray'
)

# 美化布局
plt.tight_layout(rect=[0, 0.03, 1, 0.95])

# 显示图像
plt.show()

# 5. 可选:保存图像
save_option = input("\n是否保存图像? (y/n): ").strip().lower()
if save_option == 'y':
    output_path = '/Users/wanshiqing/Desktop/Top1_Concentration_Boxplot.png'
    plt.savefig(output_path, dpi=300, bbox_inches='tight')
    print(f"图像已保存至: {output_path}")

# 6. 可选:输出描述性统计
stats = filtered_df.groupby('时间')['Top1'].describe()
print("\n股权集中度(Top1)描述性统计:")
print(stats)

# 7. 可选:绘制小提琴图
plt.figure(figsize=(14, 8))
sns.violinplot(
    x='时间', 
    y='Top1', 
    data=filtered_df,
    palette='viridis',
    inner='quartile'
)

# 设置标题和标签
if 'USE_CHINESE' in globals() and not USE_CHINESE:
    plt.title('Top1 Shareholder Concentration Distribution by Year (2001-2023)', fontsize=16)
    plt.xlabel('Year', fontsize=14)
    plt.ylabel('Top1 Concentration (%)', fontsize=14)
else:
    plt.title('股权集中度(Top1)分布密度 (2001-2023)', fontsize=16)
    plt.xlabel('年份', fontsize=14)
    plt.ylabel('股权集中度(Top1, %)', fontsize=14)

plt.grid(True, linestyle='--', alpha=0.3, axis='y')
plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'{x:.0f}%'))
plt.xticks(rotation=45, fontsize=12)
plt.yticks(fontsize=12)
plt.tight_layout()
plt.show()

print("\n第八步处理完成!")
使用中文字体: Songti SC
正在读取文件: /Users/wanshiqing/Desktop/python_code/merged_data.xlsx
数据读取成功! 共 145874 行记录

筛选年份: [2001, 2003, 2005, 2007, 2009, 2011, 2013, 2015, 2017, 2019, 2021, 2023]
筛选后数据量: 70020 行
/var/folders/3k/c1rhghwj4xn7zh2x1sj__yt40000gn/T/ipykernel_78879/1595533376.py:74: FutureWarning: 

Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.

  sns.boxplot(
posx and posy should be finite values
posx and posy should be finite values


股权集中度(Top1)描述性统计:
         count    mean     std    min     25%     50%     75%     max
时间                                                                   
2001    0.0000     NaN     NaN    NaN     NaN     NaN     NaN     NaN
2003 1261.0000 42.5528 17.1819 1.0606 28.6106 41.2759 57.0763 84.9984
2005 1350.0000 40.3382 16.2244 4.2380 27.8414 37.7029 54.1632 84.9785
2007 1512.0000 35.7774 15.2386 0.8225 23.4900 33.8986 47.2268 86.2863
2009 1670.0000 36.2720 15.6566 3.6355 23.8093 33.9747 48.1963 86.2003
2011 2295.0000 36.2038 15.6702 2.1969 23.7754 34.3301 47.2724 89.4086
2013 2466.0000 35.8655 15.6545 2.1969 23.5093 33.9492 46.6042 89.4086
2015 2806.0000 34.3266 14.9910 0.2863 22.6479 32.3816 44.2865 89.9858
2017 3461.0000 33.5866 14.6139 4.1456 22.2287 31.4047 42.9266 89.0930
2019 3753.0000 32.8855 14.7056 3.0029 21.5866 30.2994 42.3374 88.2353
2021 4677.0000 32.2911 14.8858 2.4307 21.1241 29.9000 41.5480 89.9910
2023 5322.0000 31.9592 15.0034 1.8464 20.6750 29.5243 41.2309 89.9910
/var/folders/3k/c1rhghwj4xn7zh2x1sj__yt40000gn/T/ipykernel_78879/1595533376.py:157: FutureWarning: 

Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.

  sns.violinplot(


第八步处理完成!