如何在python的for循环中将分类数据转换成数字数据

2024-04-24 11:46:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个分类数据框架,我想把它转换成数字数据,我有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)

Tags: 数据代码in命令框架mapfor分类
1条回答
网友
1楼 · 发布于 2024-04-24 11:46:48

下面是如何使用^{}^{}实现的 我使用了我自己的示例数据,其中一列没有值。你知道吗

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)

对数据帧进行转置,重复的列将变成重复的行。然后使用drop_duplicates删除重复的行。将它转换回原来的数据,没有空列和重复列。你知道吗

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

相关问题 更多 >