单一数据
import pandas as pd
import os
# 定义公司列表和财务指标
financial_metric = '销售现金比率'
# 存储汇总数据的DataFrame
all_data = pd.DataFrame()
# 遍历每家公司
for company in bj_name:
# 读取Excel文件中的数据
# 假设销售现金比率在每个Excel文件的'Sheet1'中,且位于第二列(索引为1)
df = pd.read_excel(company+'.xlsx',sheet_name='财务比率表')
# 提取销售现金比率数据,假设销售现金比率位于第二行,即索引为1
# 并且我们假设它是列的标题,所以我们需要选取第二行的所有数据
df_metric = df.iloc[2].rename(company) # 将第二行的值重命名为公司名称
# 将DataFrame转换为多行,因为iloc[1]返回的是Series
df_metric = df_metric.to_frame().T # 转置,将Series转换为DataFrame
# 将公司名称作为新列添加
df_metric.insert(0, 'Company', company)
# 将数据追加到汇总的DataFrame中
all_data = pd.concat([all_data, df_metric], axis=0).reset_index(drop=True)
# 确保数据按年份排序,假设年份在第一列
all_data.sort_values(by=all_data.columns[0], inplace=True)
# 重置索引,因为数据可能不连续
all_data.reset_index(drop=True, inplace=True)
# 将汇总后的数据导出到一个新的Excel文件
output_file = 'sales_cash_ratio_summary.xlsx'
all_data.to_excel(output_file, index=False)
print(f'销售现金比率数据已汇总并保存至 {output_file}')
所有数据
import pandas as pd
# 定义财务指标列表
X = ['销售现金比率', '盈利现金比率', '销售净利率', '资产现金比率',
'总资产周转率', '总资产净利率', '权益乘数', '净资产收益率']
# 假设您已经读取了Excel文件到DataFrame中
df = pd.read_excel('financial_summary.xlsx', sheet_name='销售现金比率')
# 创建一个ExcelWriter对象,用于写入筛选后的数据
with pd.ExcelWriter('filtered_financial_data.xlsx', engine='openpyxl') as writer:
# 遍历列表X中的每个财务指标
for metric in X:
# 筛选出 Unnamed: 0 列为当前财务指标的所有行
temp_df = df[df['Unnamed: 0'] == metric]
# 重置索引,以便将 'Unnamed: 0' 列作为普通列而不是索引
temp_df = temp_df.reset_index(drop=True)
# 重命名 'Unnamed: 0' 列为 '指标',以便在输出中使用
temp_df.rename(columns={'Unnamed: 0': '指标'}, inplace=True)
# 将筛选后的数据保存到对应的工作表中
temp_df.to_excel(writer, sheet_name=metric, index=False)