read_table pandas python数字错误

时间:2012-12-27 19:24:26

标签: python pandas

我正在执行pd.read_table文件的基本.txt。第一列是cusips列表。 cusip "65248E10"被读作数字65248E10 = 652480000000000(E10为科学记数法)。

我一直在经历大熊猫,但我无法弄清楚如何要求它留下作为一个角色。 http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_table.html#pandas.io.parsers.read_table

另外,即使我把header = 0,它似乎把第一行作为标题,然后第0行是第二行,依此类推。如果我的文本文件没有列名,我怎么能将它默认为NULL(或1,2,3等)

感谢您的帮助。我是pandas / python的新手

2 个答案:

答案 0 :(得分:2)

如果我们有一个类似

的数据文件
65248E10 11
55555E55 22

然后我们可以用类似

的东西来读它
>>> pd.read_table("cusip.txt", header=None, delimiter=" ", converters={0: str})
          0   1
0  65248E10  11
1  55555E55  22

我们使用header=None告诉它没有任何标头,我们使用delimiter=" "告诉它有空格分隔符(调整以匹配您的数据格式),{{1}告诉它,在以字符串形式读取第一列之后,我们希望将其转换为字符串(即在这种情况下不对其执行任何操作),而不是进一步处理它。 converters={0: str}代替converters={0: str},也可以有效,但这样我们仍然可以让dtype=(str, int)弄清楚其他列是什么。

使用pandas的问题是header=0这里并不意味着“没有标题”,这意味着使用行号#0(第一行)作为标题。

答案 1 :(得分:1)

要阻止您的列被读取为数字,请使用converters参数并指定str作为包含“cusips”的列的转换器。

对于标题,如您链接到的页面上所述,header是行的,它将被视为标题;它不是一个布尔说法“我是否有标题。将它设置为零意味着使用行零(即第一行)作为标题。文档明确说:

  

如果没有标题行,请指定“无”。