【问题标题】:How to read txt into data frame如何将txt读入数据框
【发布时间】:2019-10-14 14:58:21
【问题描述】:

我正在尝试将一些 web txt 数据读入数据框中,但一直遇到“多字符分隔符”问题。这是数据的链接:https://ticdata.treasury.gov/Publish/mfh.txt

from urllib.request import urlretrieve
import pandas as pd

url = 'https://ticdata.treasury.gov/Publish/mfh.txt'
urlretrieve(url, 'US Treasurys Holders.txt')

names = ['Jul 2019', 'Jun 2019', 'May 2019', 'Apr 2019', 'Mar 2019', 'Feb 2019', 'Jan 2019', 'Dec 2018', 'Nov 2018',
         'Oct 2018', 'Sep 2018', 'Aug 2018', 'Jul 2018']

data = pd.read_csv('US Treasurys Holders.txt', skipfooter=21, engine='python', skiprows=11, names=names)

我使用了 sep='\s+' 但代码一直显示给我:

错误可能是由于使用多字符分隔符时忽略了引号

【问题讨论】:

    标签: pandas python-3.7


    【解决方案1】:

    问题源于您尝试打​​开的文件的国家/地区名称中存在空格。尝试使用至少包含两个空格的分隔符:

    data = pd.read_csv(
        "US Treasurys Holders.txt",
        skipfooter=21,
        engine="python",
        sep="\s\s+",
        skiprows=11,
        names=names,
    )
    

    这给出了我认为正确的输出(这里是 5 列 x 5 行的子集):

    Jul 2019    Jun 2019    May 2019    Apr 2019    Mar 2019
    Japan   1130.8  1122.9  1101.0  1064.0  1078.1
    China, Mainland 1110.3  1112.5  1110.2  1113.0  1120.5
    United Kingdom  334.7   341.1   323.1   300.8   317.1
    Brazil  309.9   311.7   305.7   306.7   311.7
    Ireland 258.2   262.1   270.7   269.7   277.6
    

    【讨论】:

      猜你喜欢
      • 2022-07-17
      • 1970-01-01
      • 2020-03-24
      • 2018-04-05
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多