通过映射将数据帧从字符串转换为数字(作为ID),以便在机器学习作业(训练需要数字值)之后可以将数字值映射回字符串。
我的数据框中有2列:-
Repository Name
(需要转换的字符串)Number of Stars
(数值,因此无需执行任何操作)我想将字符串转换为ID,并且需要映射它们以供将来使用。
注意:我的字符串是freecodecamp
之类的单词,而不是字符串中的整数值。
答案 0 :(得分:1)
您可以使用ord()
在python中进行这些转换。例如,要将name
转换为ASCII字符代码,可以使用以下循环。
name = "John"
nameascii = []
for c in name:
nameascii.append(ord(c))
print(nameascii)
要转换回字符,请使用char()
。
但是,如果您的模型是使用张量流构建的,则tf.string_to_number
函数可能会更好(并且更快),因为可以同时进行转换,而上述循环将按顺序运行。
答案 1 :(得分:1)
def get_metadata(df, key, val):
#create a new column with index
df['index'] = df.index
if key == "Repository Name":
return {str(row[key]): row[val] for _, row in df.iterrows()}
else:
return {row[key]: row[val] for _, row in df.iterrows()}
emb2idx = get_metadata(dataframe, "index", "Repository Name")
您将获得一个索引(ID)字典和您的字符串(存储库名称)以供将来映射。