使用 pandas 从 txt 加载数据

Posted

技术标签:

【中文标题】使用 pandas 从 txt 加载数据【英文标题】:Load data from txt with pandas 【发布时间】:2014-02-28 01:59:37 【问题描述】:

我正在加载一个包含浮点数和字符串数据混合的 txt 文件。我想将它们存储在一个可以访问每个元素的数组中。现在我只是在做

import pandas as pd

data = pd.read_csv('output_list.txt', header = None)
print data

这是输入文件的结构:1 0 2000.0 70.2836942112 1347.28369421 /file_address.txt

现在数据作为唯一列导入。如何划分它,以便分别存储不同的元素(这样我可以调用data[i,j])?以及如何定义标题?

【问题讨论】:

【参考方案1】:

你可以使用:

data = pd.read_csv('output_list.txt', sep=" ", header=None)
data.columns = ["a", "b", "c", "etc."]

在您的代码中添加sep=" ",在引号之间留一个空格。因此 pandas 可以检测值之间的空格并按列排序。数据列用于命名您的列。

【讨论】:

谢谢!如何访问表格的元素? 如果要调用列,请使用 data.a 如果您将列命名为“a”。 或者如果要调用单行可以使用data.a[1](本例调用列的第一行) 太棒了!这解决了一切 破解!它奏效了。【参考方案2】:

@Pietrovismara 的解决方案是正确的,但我想补充一下:与其使用单独的行来添加列名,不如从 pd.read_csv 执行此操作。

df = pd.read_csv('output_list.txt', sep=" ", header=None, names=["a", "b", "c"])

【讨论】:

【参考方案3】:

我想补充一下上面的答案,你可以直接使用

df = pd.read_fwf('output_list.txt')

fwf 代表固定宽度的格式化行。

【讨论】:

【参考方案4】:

你可以用这个

import pandas as pd
dataset=pd.read_csv("filepath.txt",delimiter="\t")

【讨论】:

从这个答案可以看出,'sep' 和 'delimeter' 是一样的 :) ***.com/a/49533103【参考方案5】:

你可以这样做:

import pandas as pd
df = pd.read_csv('file_location\filename.txt', delimiter = "\t")

(如,df = pd.read_csv('F:\Desktop\ds\text.txt', delimiter = "\t")

【讨论】:

【参考方案6】:

如果你没有为数据分配索引并且你不确定间距是多少,你可以使用让pandas分配一个索引并寻找多个空格。

df = pd.read_csv('filename.txt', delimiter= '\s+', index_col=False)

【讨论】:

等效地,您可以指定更详细的参数delim_whitespace=True 而不是'\s+' 分隔符【参考方案7】:

您可以像这样使用 read_table 命令导入文本文件:

import pandas as pd
df=pd.read_table('output_list.txt',header=None)

加载后需要进行预处理

【讨论】:

【参考方案8】:

基于pandas的最新变化,可以使用, read_csv , read_table 已弃用:

import pandas as pd
pd.read_csv("file.txt", sep = "\t")

【讨论】:

【参考方案9】:

我通常先看一下数据,或者只是尝试导入它并执行 data.head(),如果你看到列用 \t 分隔,那么你应该指定 sep="\t" 否则,sep = " "

import pandas as pd     
data = pd.read_csv('data.txt', sep=" ", header=None)

【讨论】:

小心添加“header=None”并添加具有最大列数的附加行,您将收到类似“pandas.errors.ParserError: Error tokenizing data. C error: Expected N fields in M行”很难理解为什么。删除“header=None”可以解决问题。【参考方案10】:

你可以使用它是最有帮助的。

df = pd.read_csv(('data.txt'), sep="\t", skiprows=[0,1], names=['FromNode','ToNode'])

【讨论】:

【参考方案11】:

如果要加载指定列名的txt文件,可以使用下面的代码。它对我有用。

import pandas as pd    
data = pd.read_csv('file_name.txt', sep = "\t", names = ['column1_name','column2_name', 'column3_name'])

【讨论】:

以上是关于使用 pandas 从 txt 加载数据的主要内容,如果未能解决你的问题,请参考以下文章

从压缩文件夹中的文件夹中读取 txt 文件作为 pandas 数据框

pandas多种格式数据加载

使用read_fwf()读取pandas数据帧中的伪造数据

Pandas 加载数据的方法和技巧

使用 pandas 或 numpy 从一个 csv 加载多个数据帧

将数据从 .txt 保存并加载到正确的 texbox