熊猫:读取第一列值为NaN的数据

时间:2019-11-27 19:24:27

标签: python python-3.x pandas dataframe

我有一个文本文件test.txt,其中包含以下值:

0 -45  0.1664   
0 -45  0.6440  22.3
0 -45  0.4646  22.5
0 -45  0.7232  22.1
0 -45  0.8723  22.1
0 -45  1.0214  22.0
5 -45  1.1705  21.9
5 -45  1.3196  21.8

我想用熊猫读取文件并在matlab上获取以下数据框:

    0   1       2     3
0   0 -45  0.1664   NaN
1   0 -45  0.6440  22.3
2   0 -45  0.4646  22.5
3   0 -45  0.7232  22.1
4   0 -45  0.8723  22.1
5   0 -45  1.0214  22.0
6   5 -45  1.1705  21.9
7   5 -45  1.3196  21.8

我没有这个:

data = pd.read_csv("test.txt",delim_whitespace=True,skip_blank_lines=False,header=None)

但这给了我这个

ParserError: Error tokenizing data. C error: Expected 3 fields in line 2, saw 4

我是否必须在read_csv函数内添加一个参数?感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

这里是一个示例,将temp替换为名称文件...并导入StringIO:

import pandas as pd
from pandas.compat import StringIO

temp=u"""0 -45  0.1664
0 -45  0.6440  22.3
0 -45  0.4646  22.5
0 -45  0.7232  22.1
0 -45  0.8723  22.1
0 -45  1.0214  22.0
5 -45  1.1705  21.9
5 -45  1.3196  21.8"""

df = pd.read_csv(StringIO(temp),
                 sep="\s+",
                 usecols=[0,1,2,3],
                 names=['0','1','2','3'],
                 skip_blank_lines=False)

print (df)