2017-09-21 92 views
1

我有一个CSV文件具有以下输入:读取数据 - 蟒蛇

称号;高数据

日期保存; 01.01。 2000; 00:00

评论;

倍率; 1; [M]

计数; 4931

长度; 5583; [M]

开始1; 0; 1475

完1; 4931; 1475

轮廓1 [μm]

等等...

我想读的次数和长度为变量。问题似乎是有不同数量的列。我已经尝试过不同的东西,将它加载到一个numpy数组或熊猫数据框中,但没有任何结果。请帮帮我!谢谢!

编辑:这是我用它加载到数据框大熊猫代码:

fin = pd.read_csv('Temp.csv', sep = ';') 
df = pd.DataFrame(fin) 

但在那之后我无法读出数据帧的数据...

+1

提供了一些代码,以获得进一步的帮助 –

回答

1

这是不是一个真正的CSV文件。如果要将文件解析为熊猫数据框,通常需要查看某个表格(例如:每列是一个特征,每行是一个样本/项目/人)。

好像你有三种类型的位置数据标注格式:

[NAME OF FEATURE];[VALUE FOR FEATURE] 
[NAME OF FEATURE];[VALUE FOR FEATURE];[UNIT] 
[NAME OF FEATURE][UNIT] 
[VALUE] 
[VALUE] 
[VALUE] 

我会建议写解析器你自己是否有很多这些文件,或者如果数据只是单个文件,则将数据重新整形为一致的格式。最好是这样的:

Title, Date Save, Comment, Magnification, ..., Profil 1, ... 
High Data, 01.01.2000;00:00,,1,...,"529,528",... 
... 

编辑:如果你只在乎数量和长度。

我想读取变量的计数和长度。

relevant_lines = [line.split(';')[:1] for line in open(your_file_name).read().split('\n') if line.startswith('Counts') or line.startswith('Length')] 
df = pd.DataFrame([dict(relevant_lines)]) 

打造一个DF,看起来像这样:

Count Length 
0 4931 5583 

更简单编辑:如果你只是希望他们变量和不关心数据帧都:

lines = open(your_file).read().split('\n') 
count = None 
length = None 
for line in lines: 
    if(line.startswith('Length')): 
     length=int(line.split(';')[1]) 
    if(line.startswith('Count')): 
     count=int(line.split(';')[1])