我有一个文本文件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函数内添加一个参数?感谢您的帮助:)
答案 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)