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

我有一个分类数据框架,我想将其转换为数值数据,我有50多个列,所以我想循环运行.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)
szv123_rier 回答:如何在python熊猫中的for循环中将分类数据转换为数值数据

您可以使用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,a
        2005,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

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

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

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

df_new = df_new.T.drop_duplicates().T
df_new.columns = range(len(df_new.columns))
print(df_new)
本文链接:https://www.f2er.com/3139965.html

大家都在问