用pandas从txt加载数据

我正在加载一个包含浮动和字符串数据混合的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])?如何定义标头?

1135046 次浏览

你可以使用:

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

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

@Pietrovismara的解决方案是正确的,但我只是想补充:而不是有一个单独的行来添加列名,可以从pd.read_csv做到这一点。

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

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

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

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

你可以用这个

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

你可以这样做:

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")

如果你没有为数据分配索引,并且你不确定空格是什么,你可以使用pandas来分配索引并寻找多个空格。

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

你可以使用read_table命令导入文本文件,如下所示:

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

加载后需要进行预处理

根据pandas的最新变化,您可以使用,read_csv, read_table已弃用:

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

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

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

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

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

如果你想用指定的列名加载txt文件,你可以使用下面的代码。这对我很管用。

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