使用pandas从txt加载数据

时间:2014-02-04 07:48:58

标签: python io pandas

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

11 个答案:

答案 0 :(得分:121)

您可以使用:

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

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

答案 1 :(得分:41)

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

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

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

答案 2 :(得分:22)

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

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

答案 3 :(得分:17)

你可以用这个

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

答案 4 :(得分:6)

您可以这样做:

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

(例如df = pd.read_csv('F:\ Desktop \ ds \ text.txt',分隔符=“ \ t”)

答案 5 :(得分:3)

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

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

答案 6 :(得分:2)

基于熊猫的最新更改,可以使用read_csv,read_table已弃用:

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

答案 7 :(得分:2)

我通常首先查看数据,或者只是尝试将其导入并执行data.head(),如果您发现列之间用\ t分隔,则应指定 df = pd.read_csv(r'C:\Stuff\Python\Medical Appointment Data\792_3538_bundle_archive.zip\KaggleV2-May-2016.csv') ,否则,请{{ 1}}。

sep="\t"

答案 8 :(得分:1)

您可以使用它,这是最有用的。

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

答案 9 :(得分:1)

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

   "scripts": {
        "build": "cross-env NODE_ENV=production webpack",
        "dev": "webpack-dev-server --content-base public",
        "dev-build": "webpack"
      }

答案 10 :(得分:0)

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

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

加载后需要进行预处理