我有一个带有以下输入的CSV文件:
标题;高数据
日期保存; 01.01.2000; 00:00
注释;
放大; 1; [M]
计数; 4931
长度; 5583; [M]
开始1; 0; 1475
结束1; 4931; 1475
Profil 1 [μm]
529
528
依旧......
我想将计数和长度读入变量。问题似乎是列数不同。我尝试过不同的东西将它加载到一个numpy数组或一个pandas数据帧中,但没有真正解决。请帮我!谢谢!
编辑:这是我用来将其加载到pandas数据帧中的代码:
fin = pd.read_csv('Temp.csv', sep = ';')
df = pd.DataFrame(fin)
但之后我无法从数据框中读取数据......
答案 0 :(得分:1)
这不是一个真正的CSV文件。如果要将文件解析为pandas数据帧,通常需要查看类似于表的内容(例如:每列是一个功能,每行是一个样本/项/人)。
这里似乎有三种类型的数据注释格式:
1
[NAME OF FEATURE];[VALUE FOR FEATURE]
2
[NAME OF FEATURE];[VALUE FOR FEATURE];[UNIT]
3
[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])