繁体   English   中英

如何在 python pandas 的 for 循环中将分类数据转换为数值数据

[英]how to convert categorical data to numerical data in for loop in python pandas

我有一个分类数据框架,我想将其转换为数值数据,我有超过 50 列,所以我想在循环中运行 run.repalce 命令。

replace_map =  {'w': 4, '+': 5, '.': 6, 'g': 7}

我已经编写了迭代列的代码

for column in df1_replace.columns[1:76]:
# Select column contents by column name using [] operator
columnSeriesObj = df1_replace[column]
print('Colunm Name : ', column)
print('Column Contents : ', columnSeriesObj.values)

以下是使用dropna()drop_duplicated()的方法我使用了我自己的示例数据,其中一列没有值。

import pandas as pd
from io import StringIO

csv = StringIO('''2001,1,,a,a
        2001,2,,b,b
        2001,3,,c,c
        2005,1,,a,a
        2005,1,,c,c''')
df = pd.read_csv(csv, header=None )
print(df)

df看起来像这样

      0  1   2  3  4
0  2001  1 NaN  a  a
1  2001  2 NaN  b  b
2  2001  3 NaN  c  c
3  2005  1 NaN  a  a
4  2005  1 NaN  c  c

然后删除所有值为na(NaN)的所有列 ( how='all' )

df_new = df.dropna(how='all', axis=1)

对 dataframe 进行转置,重复的列将变为重复的行。 然后在其上使用drop_duplicates删除重复的行。 将其转回以获取原始数据,没有空列和重复列。

df_new = df_new.T.drop_duplicates().T
df_new.columns = range(len(df_new.columns))
print(df_new)

暂无
暂无

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

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