2016-03-26 6 views
0

Так что у меня первенствовать (.csv) файл данных, который выглядит как:Синтаксические данные, Excel в Python

Frequency Frequency error 
0.00575678 17 
0.315  2 
0.003536329 13 
0.00481  1 
0.004040379 4 

где второй столбец ошибка в первом столбце данных, например, значение первой записи составляет 0,00575678 +/- 0,0000000017, а второе - 0,315 +/- 0,002. Поэтому, используя python, есть способ проанализировать данные с помощью Python, чтобы я мог получить два массива данных, 1-я частота и вторая ошибка частоты. Где первая запись во втором массиве находится в формате 0,0000000017. Если бы это был небольшой файл данных, я бы сделал это вручную, но у него несколько тысяч записей, поэтому это не вариант. Спасибо

+0

вы должны изменить свой вопрос. Но я считаю, что хороший способ - разобрать каждую строку отдельно. используйте string.split ('+/-'), затем преобразуйте каждый элемент в float() – minhhn2910

+0

Как '17' в первой строке перевести на' 0,0000000017', а '2' во второй строке' 0,002'? Что контролирует масштаб? –

+0

Это как раз файл данных –

ответ

0

Возможно, не самый быстрый, но выглядит близко.

sample = """\ 
0.00575678,17 
0.315,2 
0.003536329,13 
0.00481,1 
0.004040379,4""" 

for line in sample.splitlines(): 
    value,errordigits = line.split(',') 
    error = ''.join(c if c in '0.' else '0' for c in value)[:-1] 
    error += errordigits 
    print "%s,%s" % (value,error) 

печатает:

0.00575678,0.000000017 
0.315,0.002 
0.003536329,0.0000000013 
0.00481,0.00001 
0.004040379,0.000000004 
+0

О, это отлично выглядит, я дам вам знать, как это происходит. –

+0

Есть ли способ получить колонки excel в этом формате: 1-й столбец, 2-й столбец? –

+0

На данный момент его просто в нормальном файле excel с двумя отдельными столбцами –

0

Я нашел pandas полезным для получения данных из csv.

f = pandas.read_csv("YOURFILE.csv"); 
dfw = pandas.DataFrame(data = df, columns=['COLUMNNAME1','COLUMNNAME2']) 
y = df.COLUMNNAME1.values 
x = df.COLUMNNAME2.values 
+0

Будет ли это указано, что значение «17» выходит как 0,0000000017, а «2» - 0,002? –

Смежные вопросы