У меня есть список поплавков (на самом деле это объект панды серии, если он меняет что-нибудь), который выглядит следующим образом:Назначения поплавка в качестве словаря ключа изменяет свою точность (Python)
mySeries:
...
22 16.0
23 14.0
24 12.0
25 10.0
26 3.1
...
(Так элементы эта серия справа, индексы слева) Тогда я пытаюсь присвоить элементы из этой серии в качестве ключей в словаре, и индексы в качестве значений, например:.
{ mySeries[i]: i for i in mySeries.index }
и я получая в значительной степени то, что я хотел, кроме того, что ...
{ 6400.0: 0, 66.0: 13, 3.1000000000000001: 23, 133.0: 10, ... }
Почему 3.1
вдруг изменился на 3.1000000000000001
? Я предполагаю, что это имеет отношение к тому, как представлены числа с плавающей запятой (?), Но почему это происходит сейчас и как его избежать/исправить?
EDIT: Пожалуйста, не стесняйтесь предлагать лучшее название для этого вопроса, если оно неточно.
EDIT2: Хорошо, так что кажется, что это точно такой же номер, только напечатаны по-разному. Тем не менее, если я назначу mySeries[26]
в качестве словаря ключ, а затем я пытаюсь запустить:
myDict[mySeries[26]]
я KeyError
. Каков наилучший способ избежать этого?
пытались ли вы MySeries.astype (поплавок) .to_dict() –
@StevenG Я пытаюсь это сделать наоборот: иметь индексы в качестве значений. Во всяком случае, я не думаю, что это решило бы эту проблему. – machaerus