收集A股某行业的全部上市公司详细信息,包含完整财务数据和控股股东数据
本技能使用 akshare 行业分类 获取股票,确保不遗漏任何公司:
python
c.collect(industry_name="煤炭") # 自动转换为申万行业代码 BK0437
c.collect(industry_name="焦煤") # BK1494
c.collect(industry_name="煤化工") # BK1419
python
c.collect(industry_code="BK0437") # 煤炭
c.collect(industry_code="BK1494") # 焦煤
c.collect(industry_code="BK1493") # 动力煤
c.collect(industry_code="BK1419") # 煤化工
行业名称申万代码说明煤炭BK0437煤炭开采焦煤BK1494焦炭动力煤BK1493动力煤煤化工BK1419煤化工石油BK0411石油开采燃气BK0501燃气电力BK0502电力光伏BK1033光伏
字段说明数据来源代码股票代码基本信息名称公司名称基本信息交易所沪市/深市基本信息行业证监会行业分类行业数据ROE净资产收益率(%)利润表毛利率毛利率(%)利润表净利率净利率(%)利润表营业收入营业收入(元)利润表净利润净利润(元)利润表总资产总资产(元)资产负债表总负债总负债(元)资产负债表资产负债率负债/权益资产负债表经营现金流经营现金流(元)现金流量表营收增长营收增长率(%)成长能力净利润增长净利润增长率(%)成长能力控股股东控股股东名称十大流通股东控股比例持股比例(%)十大流通股东股东性质国企/民企自动判断所在地省份手动维护产区主要生产区手动维护
python
from stock_industry_collector import IndustryCollector
c = IndustryCollector()
# 方法1:按行业名称
df = c.collect(industry_name="煤炭")
# 方法2:按申万行业代码
# df = c.collect(industry_code="BK0437")
print(f"找到 {len(df)} 只煤炭行业股票")
# 格式化
df['ROE'] = df['ROE'].apply(lambda x: str(round(float(x)*100, 2)) + '%' if x else '')
df['净利润'] = df['净利润'].apply(lambda x: str(round(float(x)/1e8, 2)) + '亿' if x else '')
print(df[['代码','名称','控股股东','ROE','净利润']].head())
# 保存Excel
df.to_excel("煤炭行业财务分析.xlsx", index=False)