Lineterminator使用熊猫给额外的行

问题描述

我认为使用熊猫从文本文件读取数据时使用行终止符存在问题。它在NaN列的末尾给出了不需要的行。我的数据有12行和一个标头,但是使用提供的代码,它会产生13行和一个标头。如何获取正确的数据。

使用

将数据写入文本文件
with open(filepath,'a',newline='') as filey: 
    csv_writer = csv.writer(filey,delimiter = '\t',lineterminator='\r\n')

代码

import pandas as pd


path_to_results = r"C:\\...\\Desktop\\Results\\_results.txt"
data = pd.read_csv(path_to_results,sep='\t',lineterminator='\r')
data = pd.DataFrame(data)

#print(data.head())
print(data["Vi_V"])
print(data["mass_g"])

使用Lineterminator \ r:

Name: Vi_V,dtype: object
0     0.24
1     0.47
...
11    3.66
12     NaN

使用Lineterminator \ r \ n:

回溯(最近通话最近一次):

  File "c:/Users.../g_00.py",line 5,in <module>
    data = pd.read_csv(path_to_results,lineterminator='\r\n')
  File "C:...\AppData\Local\Programs\Python\python37\lib\site-packages\pandas\io\parsers.py",line 676,in parser_f
    return _read(filepath_or_buffer,kwds)
  File "C:...\AppData\Local\Programs\Python\python37\lib\site-packages\pandas\io\parsers.py",line 448,in _read
    parser = TextFileReader(fp_or_buf,**kwds)
  File "C:...\AppData\Local\Programs\Python\python37\lib\site-packages\pandas\io\parsers.py",line 880,in __init__
    self._make_engine(self.engine)
  File "C:...\AppData\Local\Programs\Python\python37\lib\site-packages\pandas\io\parsers.py",line 1114,in _make_engine
    self._engine = CParserWrapper(self.f,**self.options)
  File "C:...\AppData\Local\Programs\Python\python37\lib\site-packages\pandas\io\parsers.py",line 1891,in __init__
    self._reader = parsers.TextReader(src,**kwds)
  File "pandas\_libs\parsers.pyx",line 395,in pandas._libs.parsers.TextReader.__cinit__
ValueError: Only length-1 line terminators supported

解决方法

dee cue在评论中给出了答案: “您是否尝试过省略行终止符参数?请尝试查看Windows上的python是否自动将新行读取为\ r \ n。– dee cue 10月12日10:01” 有效。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...