使用 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 数据框