Loading... # 需求 打印所有数据,没有。。。 替换标题 针对wind债券二级分类:只保留“超短期融资债券”“一般短期公司券”“一般公司债”“一般中期票据”“一般企业债”5种,其他样本全部删除 债券二级分类 删除关键指标存在数据缺失的样本 去除这些列包含nan的行 更新索引 (1)是否含权债:将“是”赋值为“1”,否则为0 (2)特殊条款:若特殊条款中含有“交叉违约”则赋值为“1”,否则为0 (3)担保人:若有内容则赋值为1,否则为0 发行时债项评级: AAA、AA + 、AA、AA - 评级依次赋值为 4、3、2、1,其中“-”也赋值为“4”。 【4】对3个变量取自然对数ln:EBITDA/利息费用 发行总额 债券期限 【5】小数点后保留8位:EBITDA/利息费用、发行总额、债券期限、总资产报酬率ROA 、资产负债率、现金比率 、总资产周转率、营业收入(同比增长率) ```python #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : Zimo # @Time : 2023/1/31 16:28 # @File : data_handle.py # @Software: PyCharm # @contact : 2319899766@qq.com # @Site : https://blog.csdn.net/qq_39799322 import math import pandas as pd import os kk = os.listdir("./data") print(kk) for huoss in kk: df = pd.read_excel(f"data/{huoss}") # 打印所有数据,没有。。。 pd.set_option('display.max_columns', None) # print(df.index) # print(df.head()) # print(df.dtypes) # print(df.iloc[:270]) pp = [] for i in df.iloc[:1]: i = i.replace("\n", "").replace(" %", "") pp.append(i) # 替换标题 df.columns = pp # print(df.columns) # print(df.head()) # 针对wind债券二级分类:只保留“超短期融资债券”“一般短期公司券”“一般公司债”“一般中期票据”“一般企业债”5种,其他样本全部删除 # 债券二级分类 zjejfl = df[["Wind债券二级分类"]].values # print(zjejfl,type(zjejfl)) for index, i in enumerate(zjejfl): # print(i) if i[0] not in ["超短期融资债券", "一般短期公司券", "一般公司债", "一般中期票据", "一般企业债"]: # print(i[0],index)# 取下标 df.drop(index, axis=0, inplace=True) # print(len(df[["Wind债券二级分类"]].values)) # 删除关键指标存在数据缺失的样本 # 去除这些列包含nan的行 df.dropna(subset=["EBITDA/利息费用[报告期] 2020年报[单位] 倍", "发行总额[单位] 亿元", "债券期限(年)[单位] 年", "Wind债券二级分类", "总资产报酬率ROA[报告期] 2020年报[单位]", "资产负债率[报告期] 2020年报[单位]", "现金比率[报告期] 2020年报", "总资产周转率[报告期] 2020年报[单位] 次", "发行人委托评级机构", "营业收入(同比增长率)[报告期] 2020年报[单位]"], axis=0, inplace=True) # 更新索引 df.reset_index(drop=True, inplace=True) # print(len(df[["Wind债券二级分类"]].values)) # df.to_excel("huoyu.xlsx", index=False) # (1)是否含权债:将“是”赋值为“1”,否则为0 df.loc[df["是否含权债"] == "是", "是否含权债"] = "1" df.loc[df["是否含权债"] == "否", "是否含权债"] = "0" # (2)特殊条款:若特殊条款中含有“交叉违约”则赋值为“1”,否则为0 for index, i in enumerate(df[["特殊条款"]].values): # print(i) if "交叉保护" in str(i[0]): df.loc[index, "特殊条款"] = "1" # print("1") else: df.loc[index, "特殊条款"] = "0" # print("0") # (3)担保人:若有内容则赋值为1,否则为0 for index, i in enumerate(df[["担保人"]].values): if len(str(i[0])) > 3: df.loc[index, "担保人"] = "1" # print(i) else: df.loc[index, "担保人"] = "0" # 发行时债项评级: AAA、AA + 、AA、AA - 评级依次赋值为 4、3、2、1,其中“-”也赋值为“4”。 for index, i in enumerate(df[["发行时债项评级"]].values): if str(i[0]) == "-": df.loc[index, "发行时债项评级"] = "4" elif str(i[0]) == "AAA": df.loc[index, "发行时债项评级"] = "4" elif str(i[0]) == "AA+": df.loc[index, "发行时债项评级"] = "3" elif str(i[0]) == "AA": df.loc[index, "发行时债项评级"] = "2" elif str(i[0]) == "AA-": df.loc[index, "发行时债项评级"] = "1" elif str(i[0]) == "AA-1": df.loc[index, "发行时债项评级"] = "1" else: pass # 【4】对3个变量取自然对数ln:EBITDA/利息费用 发行总额 债券期限 for index, i in enumerate(df[["发行总额[单位] 亿元"]].values): # if "-" in str(i[0]): # huoyus = str(i[0]).replace("-", "") # df.loc[index, "发行总额[单位] 亿元"] = str(math.log(float(huoyus))) # continue # print(float(i[0])) df.loc[index, "发行总额[单位] 亿元"] = math.log(float(i[0])) for index, i in enumerate(df[["EBITDA/利息费用[报告期] 2020年报[单位] 倍"]].values): # print(float(i[0])) if "-" in str(i[0]): huoyus = str(i[0]).replace("-", "") df.loc[index, "EBITDA/利息费用[报告期] 2020年报[单位] 倍"] = str(math.log(float(huoyus))) continue df.loc[index, "EBITDA/利息费用[报告期] 2020年报[单位] 倍"] = math.log(float(i[0])) for index, i in enumerate(df[["债券期限(年)[单位] 年"]].values): # if "-" in str(i[0]): # huoyus = str(i[0]).replace("-", "") # df.loc[index, "债券期限(年)[单位] 年"] = str(math.log(float(huoyus))) # continue df.loc[index, "债券期限(年)[单位] 年"] = math.log(float(i[0])) # 【5】小数点后保留8位:EBITDA/利息费用、发行总额、债券期限、总资产报酬率ROA 、资产负债率、现金比率 、总资产周转率、营业收入(同比增长率) df.to_excel("huoyu.xlsx", index=False) for i in ["EBITDA/利息费用[报告期] 2020年报[单位] 倍", "发行总额[单位] 亿元", "债券期限(年)[单位] 年", "总资产报酬率ROA[报告期] 2020年报[单位]", "资产负债率[报告期] 2020年报[单位]", "现金比率[报告期] 2020年报", "总资产周转率[报告期] 2020年报[单位] 次", "营业收入(同比增长率)[报告期] 2020年报[单位]"]: for index, j in enumerate(df[[i]].values): df.loc[index, i] = format(float(j[0]), ".8f") df[i] = df[i].astype(float) df.to_excel(f"data_result/{huoss}", index=False) ``` # 文件: 新建一个data文件夹,将下面文件放里面 [2017-2021+发行人.xlsx](http://type.zimopy.com/usr/uploads/2023/02/3821877743.xlsx) [2017-2021待处理数据.xlsx](http://type.zimopy.com/usr/uploads/2023/02/34548072.xlsx) 处理好的数据在data_result文件夹里 [2017-2021+发行人.xlsx](http://type.zimopy.com/usr/uploads/2023/02/822002820.xlsx) [2017-2021待处理数据.xlsx](http://type.zimopy.com/usr/uploads/2023/02/1732395007.xlsx) 最后的数据是huoyu.xlsx [huoyu.xlsx](http://type.zimopy.com/usr/uploads/2023/02/3226926330.xlsx) 最后修改:2023 年 02 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏