Python Приведение уровней смешанного фактора в строку - PullRequest
1 голос
/ 31 марта 2020

У меня есть определенный столбец в Pandas кадре данных, который имеет следующие уникальные уровни факторов:

My_Factor_Levels = [9.0, 0, 6.0, '9', '6', 9, 6, 'DE', '3U', '9.0', '6Z', '6.0', '9.', '6.', '3B', '1U', '2Z', '68', '6B']

Обратите внимание, что в My_factor_Levels есть десять отдельных значений (9.0, 6.0, '9', ' 6 ', 9, 6,' 9.0 ',' 6.0 ',' 9. ',' 6. '), которые представляют значения из двух разных уровней факторов - «9» и «6». Как заставить эти значения соответствовать одной уникальной группе (предпочтительно в строковом формате)? Любая помощь будет высоко ценится!

1 Ответ

1 голос
/ 31 марта 2020

Вы можете попробовать привести значения как int или float, а затем преобразовать их в набор (все уникальные значения в итерируемом):

My_Factor_Levels = [9.0, 0, 6.0, '9', '6', 9, 6, 'DE', '3U', '9.0', '6Z', '6.0', '9.', '6.', '3B', '1U', '2Z', '68', '6B']

def safe_convert(x):
    try:
        return str(float(x))
    except:
        return x

coerced = set([safe_convert(x) for x in My_Factor_Levels])
>>> coerced
{'0.0', '1U', '2Z', '3B', '3U', '6.0', '68.0', '6B', '6Z', '9.0', 'DE'}

Если вы предпочитаете окончательный вариант coerced результат, чтобы быть списком, просто сделайте list(set(...)) вместо.

...