【问题标题】:How do read a SEC txt-file into a pandas dataframe?如何将 SEC txt 文件读入 pandas 数据帧?
【发布时间】:2018-04-05 06:22:25
【问题描述】:

我正在尝试使用 SEC(美国证券交易委员会数据)。 SEC provides useful data in a txtformat。我在用 2017年第二季度财务报表数据集。你可以找到我使用的数据here

我尝试将txt文件读入pandas dataframe。我尝试了以下方法:

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_csv:Error tokenizing data. C error: Expected 2 fields in line 7, saw 3时确实出现错误

关于如何将数据读入熊猫数据框有什么想法吗?

【问题讨论】:

    标签: python-3.x pandas import error-handling


    【解决方案1】:

    看起来文件是制表符分隔的 - 这就是您在结果中看到 \t 的原因。 pandas read_csv 默认为逗号分隔值,因此您必须更改分隔符。这由sep 参数控制。此外,您需要提供正确的编码(尝试读取numpretag 文件时会引发错误)。一般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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-09
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      相关资源
      最近更新 更多