标签分隔数据python

时间:2014-03-19 00:01:27

标签: python matplotlib tabs histogram

必须开始我对Python非常陌生并且仍然非常糟糕,但相信最终要学习它是值得的。

我的问题是我有这个设备打印出.txt中的值,但是用制表符而不是逗号分隔。例如:50 \ t50 \ t66 \ t0 \ t4 ...

我想要的只是用该数据绘制一个简单的直方图。 我确实认识到这应该是最简单的事情,但不知怎的,我在找到我的python nooby讲座的解决方案时遇到了麻烦,我也不能真正用这句话来在线搜索。

import matplotlib.pyplot as plt
#import numpy as np

d = open('.txt', 'r')
d.read()

plt.hist(d)
plt.show()

PS:numpy只是我之前练习中的剩余部分

3 个答案:

答案 0 :(得分:1)

不用担心,每个人都必须从某个地方开始。你走在正确的轨道上,并且是正确的Python是一门很好的学习语言。有很多是可以实现的,但这是一种方式。通过编写此示例的方式,它将在文件中的每行生成一个直方图。如果需要,您可以修改或更改该行为。

请注意,CSV模块将把quoting = csv.QUOTE_NONNUMERIC传递给阅读器的构造函数,以便将文件中的数据转换为浮点数。这可能是处理CSV / TSV文件中数字转换的首选方法。

import csv
import matplotlib.pyplot as plt

data_file = open('testme.txt')
tsv_reader = csv.reader(data_file, delimiter='\t',
                        quoting=csv.QUOTE_NONNUMERIC)

for row in tsv_reader:
    plt.hist(row)
    plt.show()

我遗漏了一些诸如正确exception handling之类的内容,并使用context manager打开文件作为最佳做法并在csv module documentation中进行了演示。

一旦您对该语言有了更多了解,我建议您进一步深入研究这些科目。

答案 1 :(得分:0)

将read()的字符串结果赋给变量s:

s = d.read()

split会将字符串s分解为字符串列表:

s = s.split("\t")

map会将一个函数应用于列表的每个元素:

s = map(float, s)

答案 2 :(得分:0)

如果您学习csv,您可以使用分隔符=' \ t'来处理该文件。作为选择之一。这将改变预期的分隔符,','到' \ t' (制表符。您学习的所有使用','的示例都将以相同的方式处理。