我正在执行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的新手
答案 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
是行的号,它将被视为标题;它不是一个布尔说法“我是否有标题。将它设置为零意味着使用行零(即第一行)作为标题。文档明确说:
如果没有标题行,请指定“无”。