首页 > 解决方案 > 将文本转换为具有近乎空列的数据框

问题描述

我正在使用 SEC 提供的开源财务报表数据:https ://www.sec.gov/dera/data/financial-statement-data-sets.html

我计划尝试对这些与我拥有的其他数据合并的数学建模。在此之前,我需要生成一个大型数据框,将num.txt每个季度的所有信息结合起来。

第一步是将个人num.txt(来自任何一个季度)读取为 pandas df。问题是该列footnotes通常是空白的,coreg通常是空白的(但并非总是如此)等等(据我所知,没有任何明确的路标——但请在网站上亲自查看!)。谁能帮我处理这个?

标签: pythonpandas

解决方案


您需要使用制表符作为分隔符。FWIW,我阅读了其中一个文件,它有超过 300 万行。因此,在遇到内存错误之前,您很可能无法将其中的一些与 pd.concat() 结合起来。可能还有其他方法可以进行分析,但如果您必须有一个非常大的表,您可以使用 dask 数据框https://examples.dask.org/dataframe.html

df = pd.read_csv('num.txt', sep='\t')

print (df.head(5)) 

    adsh                    tag                         version    coreg ddate     qtrs uom value          footnote
0   0000070502-20-000004    DerivativeNotionalAmount    invest/2013 NaN 20191130    0   USD 1.043574e+10    NaN
1   0000070502-20-000004    DerivativeNotionalAmount    invest/2013 NaN 20190531    0   USD 1.084328e+10    NaN
2   0000080424-20-000017    DerivativeNotionalAmount    invest/2013 NaN 20190630    0   USD 1.730900e+10    NaN
3   0000080424-20-000017    DerivativeNotionalAmount    invest/2013 NaN 20191231    0   USD 1.618200e+10    NaN
4   0000038777-20-000011    DerivativeNotionalAmount    invest/2013 NaN 20191231    0   USD 6.000000e+07    NaN

推荐阅读