使用映射将DataFrame从数字转换为字符串

时间:2019-03-04 05:25:19

标签: python pandas dataframe lambda

通过映射将数据帧从字符串转换为数字(作为ID),以便在机器学习作业(训练需要数字值)之后可以将数字值映射回字符串。

我的数据框中有2列:-

  1. Repository Name(需要转换的字符串)
  2. Number of Stars(数值,因此无需执行任何操作)

我想将字符串转换为ID,并且需要映射它们以供将来使用。

注意:我的字符串是freecodecamp之类的单词,而不是字符串中的整数值。

2 个答案:

答案 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)字典和您的字符串(存储库名称)以供将来映射。