【问题标题】:how to load raw data in a text file in to pandas dataframe?如何将文本文件中的原始数据加载到熊猫数据框中?
【发布时间】:2018-05-11 06:13:58
【问题描述】:

我的数据在一个文本文件中,格式如下:

标题1:废话

标题2:废话

heading3:blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah(文本为该行的标题3输入新行)


标题1:废话

heading2:blah

heading3:blah blah blah blah blah blah blah blah blah

等等……

注意

  • heading3 数据转到下一行。
  • 这是数据集的 Zip 文件 link

【问题讨论】:

  • 标题3数据可以进入下一行
  • 需要更好地了解输入数据的外观,除非您实际上是在加载包含一堆“废话”字符串的文本文件。例如你能在值上使用字符串split 方法将它们变成列表吗?
  • 您好,数据为here 压缩文件。

标签: pandas loaddata


【解决方案1】:

感谢您发布数据链接。如果它是公开的,那么最初这样做会很有帮助。我在完整的数据集上运行它;在一台像样的笔记本电脑上花了几秒钟。

import numpy as np
import pandas as pd

with open('rfa_all.NL-SEPARATED.txt', 'r') as f:
    data = f.readlines()

# create a dictionary with keys and lists.
# if you don't set the values as lists, you get an error.
d = {'SRC': [], 'TGT': [], 'VOT': [],  'RES': [],  'YEA': [],  'DAT': [],  'TXT': []}

for line in data: # go through file line by line
    if line != '\n': # skip new line characters
        line = line.replace('\n', '') # get rid of '\n' in all fields
        key, val = line.split(':', 1) # take the first 2 tokens from the split statement
        d[key].append(val)

df = pd.DataFrame(d)
df

这篇文章的广泛帮助:https://stackoverflow.com/a/26644245/6672746

我确信有一种更快的方法来设置它,但我认为这会奏效。

【讨论】:

  • 实际文件中的格式与您的示例中的格式有很大不同,因此它破坏了 split(':') 语句。稍后我会尝试再看看。
猜你喜欢
  • 2018-11-27
  • 2023-01-16
  • 2020-07-18
  • 2014-04-12
  • 2020-07-16
  • 2020-06-03
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多