现有上市公司1990-2023年资产负债表、利润表、现金流量表所有科目的数据,对这些文件进行批量读取,分别合并形成资产负债表、利润表、现金流量表数据。
时间: 2024-10-23 11:10:00 浏览: 39
上市公司1990-2023百货行业资产负债利润经营盈利发展能力等1413指标每股指标股利分配风险水平治理审计专利现金流量分析
要处理这种情况,你需要使用Python的数据分析库如Pandas,以及可能需要处理Excel或CSV等常见财务文件的库,比如pandas_excel或openpyxl。以下是一个简化的步骤说明:
1. 安装所需的库:
```bash
pip install pandas pandas_excel openpyxl
```
2. 导入库并读取数据:
```python
import pandas as pd
from pandas_excel import read_excel
# 假设数据存储在 Excel 文件夹中
data_folder = 'path/to/your/data/folder'
# 对于每个文件类型(资产负债表、利润表、现金流量表),遍历文件名
# 这里假设文件名是固定的模式,例如'balance_*.xlsx', 'income_*.xlsx', 'cashflow_*.xlsx'
file_names = {
'balance': 'balance_*.xlsx',
'income': 'income_*.xlsx',
'cashflow': 'cashflow_*.xlsx'
}
dfs = {}
for sheet_type, file_pattern in file_names.items():
dfs[sheet_type] = []
for file_name in sorted(glob.glob(data_folder + '/' + file_pattern)):
df = read_excel(file_name)
dfs[sheet_type].append(df)
# 将列表转换为单个DataFrame
dfs[sheet_type] = pd.concat(dfs[sheet_type], ignore_index=True) # 忽略索引以便合并
```
3. 数据清洗和整合:
- 检查数据是否有缺失值或格式不一致,可能需要填充或标准化。
- 如果不同年度的数据列名相同但顺序不同,可以使用`pd.wide_to_long`函数将其转换为长格式。
4. 合并表格:
- 如果资产负债表、利润表和现金流量表有共享的列(如日期或公司ID),可以使用它们作为连接键进行合并。
- 使用`merge`函数或者`concat`函数沿着共享列进行合并。
5. 结果保存:
```python
# 选择合适的合并方式(如按年份+类型)
merged_df = pd.concat([dfs['balance'], dfs['income'], dfs['cashflow']], axis=0, sort=False)
# 确保结果的结构符合预期,然后保存到新的Excel或CSV文件中
merged_df.to_excel('merged_financials.xlsx', index=False)
```
阅读全文