[英]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.