如何将文本文件中的原始数据加载到熊猫数据框中?

Posted

技术标签:

【中文标题】如何将文本文件中的原始数据加载到熊猫数据框中?【英文标题】: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 压缩文件。 【参考方案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://***.com/a/26644245/6672746

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

【讨论】:

实际文件中的格式与您的示例中的格式有很大不同,因此它破坏了 split(':') 语句。稍后我会尝试再看看。

以上是关于如何将文本文件中的原始数据加载到熊猫数据框中?的主要内容,如果未能解决你的问题,请参考以下文章

AS3 将多个文本框数据保存并加载到本地文件

如何将非结构化的 excel 电子表格加载到熊猫中?

如何在codebehind的pageload事件被触发之前,在页面加载时将一个会话存储值传递到文本框中?

将文本文档中的字符串值分离到熊猫数据框中

将文本框中的数据保存到文本文件中

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?