我正在尝试解析一个创建于99年的文本文件,它有点难以处理。头在第一行,用“^”分隔(整个文件用“^”分隔)。问题是有些字符似乎被抛出(例如,长行空格似乎将头与文件中的其余数据点分隔开来)。(位于https://www.chicagofed.org/applications/bhc/bhc-home的示例文件我的示例引用的是Q3 1999)。你知道吗
问题: 1) 太多的头来手动创建它们,我需要这样做的许多文件,可能有新的头,因为我们向前或向后移动整个时间序列 2) 我需要从文件中重新创建头文件,然后删除它们,这样我就不会用重复的头文件污染我的整个第一行。我意识到我可能可以在事后将数据帧[1:]切分并去掉它,但这太草率了,我相信还有更好的方法。 3) 按公司列出的未报告字段显示为“^^^^^^^^^^^^”,这很好,但在这种情况下,pandas会自动填充nan吗?你知道吗
我下面的尝试只是试图隔离标题,但我真的被困在文本文件的结构方式这一更大的问题上。我遗漏了什么建议或明显的小把戏?你知道吗
from zipfile import ZipFile
import pandas as pd
def main():
#Driver
FILENAME_PREFIX = 'bhcf'
FILE_TYPE = '.txt'
field_headers = []
with ZipFile('reg_data.zip', 'r') as zip:
with zip.open(FILENAME_PREFIX + '9909'+ FILE_TYPE) as qtr_file:
headers_df = pd.read_csv(qtr_file, sep='^', header=None)
headers_df = headers_df[:1]
headers_array = headers_df.values[0]
parsed_data = pd.read_csv(qtr_file, sep='^',header=headers_array)
我尝试了你链接的文件和我从2015年下载的文件:
最后的数据帧既有csv的行,也有csv的列的并集。 您可以对每个季度的csv执行此操作并附加它,这样最终您将拥有它们的所有行和列的并集。你知道吗
相关问题 更多 >
编程相关推荐