Python 3.x 如何将SEC txt文件读入数据帧?

Python 3.x 如何将SEC txt文件读入数据帧?,python-3.x,pandas,import,error-handling,Python 3.x,Pandas,Import,Error Handling,我正在尝试使用SEC(美国安全和交换委员会数据)。这个我正在使用 2017年第二季度的财务报表数据集。你可以找到我使用的数据 我尝试将txt文件读入pandas数据帧。我试过以下方法: sub = pd.read_fwf('sub.txt') sub_1 = pd.read_csv('sub.txt') 我在使用Pandas的read_fwf函数时没有遇到任何错误,但输出完全是垃圾。以下是数据帧的头部: adsh cik name sic countryba stprba cityba zip

我正在尝试使用SEC(美国安全和交换委员会数据)。这个我正在使用 2017年第二季度的财务报表数据集。你可以找到我使用的数据

我尝试将
txt
文件读入
pandas数据帧
。我试过以下方法:

sub = pd.read_fwf('sub.txt')
sub_1 = pd.read_csv('sub.txt')
我在使用Pandas的read_fwf函数时没有遇到任何错误,但输出完全是垃圾。以下是数据帧的头部:

adsh cik name sic countryba stprba cityba zipba bas1 bas2 baph countryma stprma cityma zipma mas1 mas2 countryinc stprinc ein former changed afs wksi fye form period fy fp filed accepted prevrpt detail instance nciks aciks  Unnamed: 1
0   0000002178-17-000038\t2178\tADAMS RESOURCES & ...   NaN
1   0000002488-17-000107\t2488\tADVANCED MICRO DEV...   NaN
使用
read\u csv
时,我确实会遇到一个错误:
错误标记数据。C错误:第7行预期有2个字段,saw 3


有没有关于如何将数据读入pandas数据框的想法?

看起来文件是用标签隔开的-这就是为什么您会在结果中看到
\t
pandas
read\u csv
默认为逗号分隔的值,因此必须更改分隔符。这由
sep
参数控制。此外,您还需要提供正确的编码(尝试读取
num
pre
标记
文件时会抛出错误)。通常
ISO-8859-1
是一个不错的选择

#import pandas
import pandas as pd

#read in the .txt file and choose a separator and encoding standard
df = pd.read_csv('sub.txt', sep='\t', encoding='ISO-8859-1')

#output the results
print(df)

                     adsh      cik                                   name  \
0     0000002178-17-000038     2178         ADAMS RESOURCES & ENERGY, INC.   
1     0000002488-17-000107     2488             ADVANCED MICRO DEVICES INC   
2     0000002969-17-000019     2969      AIR PRODUCTS & CHEMICALS INC /DE/   
3     0000002969-17-000024     2969      AIR PRODUCTS & CHEMICALS INC /DE/   
4     0000003499-17-000010     3499                         ALEXANDERS INC   
5     0000003545-17-000043     3545                              ALICO INC   
6     0000003570-17-000073     3570                    CHENIERE ENERGY INC