目录
对pandas的dataframe中的类别型字段进行数字编码化(类别型特征数值化)并导出映射表
对pandas的dataframe中的类别型字段进行数字编码化(类别型特征数值化)并导出映射表
1. # ML之FE:对pandas的dataframe中的类别型字段进行数字编码化(类别型特征数值化)并导出映射表 2. from sklearn.preprocessing import LabelEncoder 3. from NDataScience.DataAnalysis import Dict2DfByRow 4. for col in df.columns: 5. print(col,df[col].dtype) 6. if df[col].dtype in ['float64', 'int', 'int64']: 7. df[col] = pd.to_numeric(df[col]) 8. else: 9. # 全部字符串化 10. df[col] = df[col].apply(str) 11. 12. # 编码化 13. LbE = LabelEncoder() 14. LbE.fit(df[col]) 15. df[col] = LbE.transform(df[col]) 16. 17. #导出映射表:开发逻辑中需要 18. mapping_dict = dict(zip(LbE.classes_, range(1, len(LbE.classes_) + 1))) 19. mapping_dict = {encode: label for label, encode in enumerate(LbE.classes_)} 20. Dict2DfByRow(mapping_dict,mark=col)