繁体   English   中英

Python 将混合因子级别强制转换为字符串

[英]Python Coercing Mixed Factor Levels to String

我在 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'。 如何强制这些值符合一个唯一的分组(最好是字符串格式)? 任何帮助将非常感激!

您可以尝试将值转换为intfloat ,然后转换为一个集合(可迭代中的所有唯一值):

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(...))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM