python - 将文本转换为具有近乎空列的数据框
问题描述
我正在使用 SEC 提供的开源财务报表数据:https ://www.sec.gov/dera/data/financial-statement-data-sets.html
我计划尝试对这些与我拥有的其他数据合并的数学建模。在此之前,我需要生成一个大型数据框,将num.txt
每个季度的所有信息结合起来。
第一步是将个人num.txt
(来自任何一个季度)读取为 pandas df。问题是该列footnotes
通常是空白的,coreg
通常是空白的(但并非总是如此)等等(据我所知,没有任何明确的路标——但请在网站上亲自查看!)。谁能帮我处理这个?
解决方案
您需要使用制表符作为分隔符。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
推荐阅读
- python - 由于几何形状不同,尝试溶解多边形时使用 fiona 的代码失败
- r - 如何从数据框列表中折叠到具有最小 int 值的数据框
- docker-container - 以普通用户身份运行 OCI 容器
- javascript - 我们可以简化这个速记 if/else
- sandbox - Ignite 和 gVisor 在用例方面有什么区别?
- r - 创建一个包含“0”作为记录的子集
- xero-api - Xero - 发票的包容性税收明细显示计算错误
- ios - 有没有办法在启动 Siri 之前检测用户是否已经在您的应用程序中?
- html - 尝试制作菜单分隔符破折号而不是实心
- python - 如何在 python 中实现泛型?Java 或 C++ 之类的东西提供