沪深A股上市公司数据报告分析

前言:

本期将利用Python分析沪深上市公司数据,看看公司的基本财报数据、地区分布情况、公司规模等等,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。


1.数据读取:

在这里插入图片描述


2.数据预处理:

2.1 缺失值处理

data.info() #查看是否有缺失值

在这里插入图片描述

2.2 重复值处理

duplicates_count = data.duplicated().sum()  # 计算重复值数量

在这里插入图片描述

3.数据分析:

3.1 公司地区分布情况
在这里插入图片描述
在这里插入图片描述

3.2对净利润进行排序并添加排名

# 定义转换函数
def convert_to_int(value):
    if isinstance(value, str):
        if '亿' in value:
            return float(value.replace('亿', '')) * 1e8
        elif '万' in value:
            return float(value.replace('万', '')) * 1e4
    return value

# 将转换函数应用于‘营业收入’和‘净利润’列
data['营业收入'] = data['营业收入'].apply(convert_to_int)
data['净利润'] = data['净利润'].apply(convert_to_int)

# 将转换后的列转换为数字类型,如果无法转换,则设置为NaN
data['营业收入'] = pd.to_numeric(data['营业收入'], errors='coerce')
data['净利润'] = pd.to_numeric(data['净利润'], errors='coerce')

# Drop rows with NaN values in '营业收入' and '净利润'
data.dropna(subset=['营业收入', '净利润'], inplace=True)

# (营业收入 - 净利润)
data['利润总额'] = data['营业收入'] - data['净利润']

#%%
# Sort by '营业收入' and add ranking
revenue_ranking = data.sort_values(by='营业收入', ascending=False).reset_index(drop=True)
revenue_ranking['排名'] = range(1, len(revenue_ranking) + 1)

# Return the revenue ranking as a DataFrame
revenue_ranking[['排名', '股票代码', '公司名称', '营业收入']]

在这里插入图片描述

profit_ranking = data.sort_values(by='净利润', ascending=False).reset_index(drop=True)
profit_ranking['排名'] = range(1, len(profit_ranking) + 1)

# Return the revenue ranking as a DataFrame
revenue_ranking[['排名', '股票代码', '公司名称', '净利润']]

在这里插入图片描述
3.3行业排名-直方图

# 只选取前十个行业分类
top_industry_categories = data['行业分类'].value_counts().head(10)

# 绘制行业分类的直方图
plt.figure(figsize=(10, 8))  # 设置图形的大小
top_industry_categories.plot(kind='bar')  # 绘制直方图
plt.title('前十个行业分类直方图')  # 设置图形标题
plt.xlabel('行业分类')  # 设置x轴标签
plt.ylabel('公司数量')  # 设置y轴标签
plt.xticks(rotation=45)  # 旋转x轴标签以便更好地显示
plt.tight_layout()  # 自动调整子图参数, 使之填充整个图像区域
plt.show()  # 显示图形

在这里插入图片描述
3.4公司规模-词云图(主要依据:员工数量)

# 提取公司名称和员工人数数据
name = data['公司名称']
value = data['员工人数']

# 将公司名称和员工人数数据打包为元组列表,便于后续处理
data1 = [z for z in zip(name, value)]

# 初始化WordCloud对象,用于绘制词云图
chart = WordCloud()

# 添加数据到词云图,设置词云中单词(即公司名称)的大小范围
# word_size_range 参数设置单词大小的范围
chart.add('员工人数', data_pair=data1, word_size_range=[6, 66])

# 设置全局选项,包括标题和提示信息
chart.set_global_opts(
    # 设置标题及其样式
    title_opts=opts.TitleOpts(
        title='公司规模分析',
        title_textstyle_opts=opts.TextStyleOpts(font_size=30)),
    # 设置提示信息,当鼠标移动到词云上的单词时显示相关信息
    tooltip_opts=opts.TooltipOpts(is_show=True)
)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值