【发布时间】:2021-03-30 03:12:09
【问题描述】:
我正在使用这个 Kaggle 数据集,我正在尝试将分类值转换为数值,以便我可以应用回归。
https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data
这是我迄今为止尝试过的一个示例。
train_data = pd.read_csv('train.csv')
column_contents = []
for row in train_data['Street']:
if type(row) not in (int,float):
column_contents.append(row)
unique_contents = set(column_contents)
ds = {}
for i,j in enumerate(unique_contents):
ds[j] = i
train_data['Street'] = train_data['Street'].replace(ds.keys(), list(map(str, ds.values())), regex=True)
此后,我创建了以下函数以将其应用于 df 的所有列:
def calculation(df,column):
column_contents = []
for row in df[column]:
if type(row) not in (int,float):
column_contents.append(row)
unique_contents = set(column_contents)
ds = {}
for i,j in enumerate(unique_contents):
ds[j] = i
df[column] = df[column].replace(ds.keys(), list(map(str, ds.values())), regex=True)
return df[column]
for column in train_data:
train_data[column] = calculation(train_data,column)
但是,这个功能不起作用,而且我认为它在很多层面上都是错误的。任何帮助将不胜感激。 我也知道这可以使用其他模块(numpy)来完成,但我宁愿这样做来练习。
【问题讨论】:
-
您能否在帖子正文中发布数据样本和所需结果,而不使用可能对未来读者无效的外部链接?您对循环的使用似乎过于复杂,无法转换为分类列。
标签: python pandas data-conversion categorical-data