У меня есть кадр данных, преобразованный из временной области в частотную область с использованием преобразования Фурье, что привело к мнимым/комплексным значениям. Мне нужно преобразовать DataFrame
в числа с плавающей запятой, чтобы иметь возможность классифицировать данные. Как я могу преобразовать его?
Как преобразовать сложные значения фрейма данных в числа с плавающей запятой в python 3?
Ответы (1)
df = pd.DataFrame([complex(x,y) for x,y in
zip(np.random.randn(3),np.random.randn(3))])
print(df)
Out:
0
0 (0.815555184453+0.942659258939j)
1 (0.725136694628+0.999826686401j)
2 (0.311981899931+0.309615235755j)
Если вам нужна величина комплексных чисел, вы можете взять модуль (r в полярных координатах):
df.applymap(np.absolute)
Out:
0
0 1.246490
1 1.235102
2 0.439539
Если вы хотите потерять воображаемый компонент, вы можете перевести его в число с плавающей запятой:
df.astype(np.float64)
Out:
0
0 0.815555
1 0.725137
2 0.311982
person
Seiji Armstrong
schedule
06.10.2017
df.applymap(np.absolute) выдает сообщение об ошибке: KeyError: (ufunc 'absolute' не содержит цикла с совпадающими сигнатурами типов dtype('‹U22') dtype('‹U22'), 'произошло по индексу 0' )
- person sara; 07.10.2017
Судя по вашему сообщению об ошибке, у вас есть поля, содержащие строки (длиной 22 символа). Пожалуйста, предоставьте пример данных вашей проблемы.
- person Seiji Armstrong; 08.10.2017
Если вы просто хотите перевести один столбец комплексных чисел в вещественные числа (величину), вы можете использовать
df[colname].apply(np.absolute)
- person Seiji Armstrong; 08.10.2017
df.applymap(np.absolute). работал! и преобразовал весь фрейм данных. Спасибо
- person sara; 08.10.2017