基于日期条件筛选财务比率数据集并转换日期格式
解决方案:批量处理财务比率数据集
针对你拥有的4000+公司、15万+条记录的财务比率数据集,以下是基于Python pandas的高效处理方案,完全匹配你的需求:
1. 数据读取与预处理
首先将数据集读入pandas DataFrame,支持CSV、Excel等常见格式:
import pandas as pd # 读取空格分隔的数据集(如果是CSV用pd.read_csv('your_file.csv'),Excel用pd.read_excel) df = pd.read_csv('financial_data.txt', sep='\s+') # 将日期列转为datetime类型,方便后续日期比较(可选但推荐) df['StartDate'] = pd.to_datetime(df['StartDate'], format='%Y%m%d') df['EndDate'] = pd.to_datetime(df['EndDate'], format='%Y%m%d')
2. 筛选完整周期数据(删除季度更新行)
按公司名称和StartDate分组,保留每组中EndDate最晚的记录(即完整周期的财务数据),这种方法处理15万条数据效率极高:
# 获取每组中EndDate最大的行的索引 idx = df.groupby(['CopanyName', 'StartDate'])['EndDate'].idxmax() # 根据索引筛选数据 filtered_df = df.loc[idx].reset_index(drop=True)
3. 生成Year列并整理最终格式
从StartDate提取年份,然后保留需要的列:
# 提取年份(如果没转datetime,用df['StartDate'].str[:4].astype(int)) filtered_df['Year'] = filtered_df['StartDate'].dt.year # 整理成最终需要的列顺序 final_df = filtered_df[['CopanyName', 'Year', 'ROA', 'ROE']] # 查看结果或保存到文件 print(final_df) final_df.to_csv('cleaned_financial_data.csv', index=False)
关键说明
- 该方案完全自动化处理,无需手动操作,适合大规模数据集
- 分组逻辑严格匹配你的示例:每个公司的同一
StartDate周期下,仅保留最后一条(完整周期)记录 - 若日期格式存在异常,可先通过
df['StartDate'] = pd.to_datetime(df['StartDate'], format='%Y%m%d', errors='coerce')清洗无效日期
内容的提问来源于stack exchange,提问作者Robbert
相关产品推荐
相关产品推荐

