Так у меня есть файл первенствовать, который выглядит, как этотPython и импортировать с плавающей запятой числа из файла Excel
Name R s l2 max_amplitude ref_amplitude
R_0.3_s_0.5_l2_0.1 0.3 0.5 0.1 1.45131445 1.45131445
R_0.3_s_0.5_l2_0.6 0.3 0.5 0.6 3.52145743 3.52145743
...
R_1.1_s_2.0_l2_1.6 1.1 2.0 1.6 5.07415199 5.07415199
R_1.1_s_2.0_l2_2.1 1.1 2.0 2.1 5.78820419 5.78820419
R_1.1_s_2.0_l2_2.6 1.1 2.0 2.6 5.84488964 5.84488964
R_1.1_s_2.0_l2_3.1 1.1 2.0 3.1 6.35387516 6.35387516
Использование модуля панд я импортировать данные в кадр данных
import pandas as pd
df = pd.read_excel("output_var.xlsx", header=0)
Everything вроде нормально:
df
в командной строке производит:
R s l2 max_amplitude ref_amplitude
0 0.3 0.5 0.1 1.451314 1.451314
1 0.3 0.5 0.6 3.521457 3.521457
2 0.3 0.5 1.1 4.770226 4.770226
...
207 1.1 2.0 2.1 5.788204 5.788204
208 1.1 2.0 2.6 5.844890 5.844890
209 1.1 2.0 3.1 6.353875 6.353875
[210 rows x 5 columns]
Теперь мне нужно сделать некоторые вычисления на основе значения R, поэтому мне нужно выполнить нарезку массива. Столбец R содержит 5 различных значений: 0,3, 0,5, 0,7, 0,9 и 1,1. Каждое из этих 5 значений имеет 42 строки. (5x42 = 210) Чтобы удалить дубликаты из "R" Я стараюсь
set(df.R)
который возвращает:
{0.29999999999999999,
0.5,
0.69999999999999996,
0.89999999999999991,
0.90000000000000002,
1.1000000000000001}
Кроме от представления 0,3, как 0,29999 и т.д. есть 6 (вместо 5) различные значения для Р. швов, которые иногда получает 0,9 истолкованы как 0.89999999999999991 а иногда как 0,90000000000000002 Это может быть (частично) решаемые с:
set(round(df.R,1))
, который (как минимум) возвращает 5 значений:
{0.29999999999999999,
0.5,
0.69999999999999996,
0.90000000000000002,
1.1000000000000001}
Но теперь я попадаю в опасную часть. Если я хочу сделать нарезку в соответствии с известными значениями R (0,3, 0,5, 0,7, 0,9 и 1,1)
len(df[df.R==0.3])
возвращается
42
и
len(df[df.R==0.9])
возвращает
41
Одно значение удаляется Py тунце! (помните, что есть 42 строки для каждого из 5 R, дающих общее количество 210 строк в файле). Как справиться с этой проблемой?
спасибо за быстрый ответ, но панд drop_duplicates "не решает проблему с плавающей точкой: «df.R.drop_duplicates()» выходы: „ 0,3 0,5 0,7 0,9 0,9 1,1 “ Так что я до сих пор есть два„разных“0,9 значения – Mato
@Mato Вы уверены, что они одинаковы в Excel файл? Можете ли вы поделиться файлом (или его частью), если это возможно? – ayhan
В excel данные для R = 0.9 выглядят одинаково, но я просто попытался быстро импортировать данные в Mathematica и возникла одна и та же проблема (два значения 0.9). Таким образом, кажется, что проблемы в данных (хотя файл Excel был сгенерирован с помощью команды pandas 'to_excel'). Мне придется искать там проблему. – Mato