我正在尝试使用以下代码从txt文件中读取数据:
a b c d e f \
2000000 -65.949737 167.359438 -9.773884 -0.102801 -9.768339 -0.102985
31990000 -44.882304 149.629367 -9.776339 -1.058768 -9.772569 -1.056513
61980000 -43.898586 -155.579474 -9.777945 -1.976854 -9.775798 -1.969913
91970000 -55.187924 -100.870064 -9.781525 -2.895683 -9.778132 -2.877063
121960000 -46.330680 126.798745 -9.783116 -3.803569 -9.779577 -3.782513
g h i
2000000 -68.031965 -40.420658 NaN
31990000 -58.193022 93.591063 NaN
61980000 -53.468840 132.634058 NaN
91970000 -53.542601 171.131622 NaN
121960000 -53.124162 -142.028566 NaN
但是,以下是我得到的,这不是我想要的。列名向右移动,因此有一个额外的列生成了NaN(我想要的是列名'a'应该对应于以2000000开头的列,并且在左边应该有一列索引第一栏)。任何专家都可以告诉我原因以及如何解决这个问题?非常感谢。
beforeSend: function(){$.event.trigger('ajaxStart');}
答案 0 :(得分:0)
我能够通过用空格而不是制表符分隔第一列来重现您描述的行为。您可能想检查输入是否存在类似问题。这可以通过
轻松完成print(data["a"])
如果打印两列(实际上不是两列而是一列类型为“string”),那么问题很可能是由错误的分隔符引起的。如果数字没有被给定的分隔符(在您的情况下为选项卡)分隔,Pandas会将输入“1234 1234”解释为文本字符串。
您可以使用参数delim_whitespace=True
代替sep='\t'
来解决此类问题。这将使pandas使用任何空格组合作为分隔符。 (另请参阅pandas docs。)
我现在意识到换行后的数据会再次显示示例中第一列的值。这表明第一列以某种方式被解释为索引。因此,我不相信我的回答会对你有所帮助。我保留在这里,以防有人遇到我描述的问题并阅读你的问题。