Python 使用映射将数据帧从数字转换为字符串

Python 使用映射将数据帧从数字转换为字符串,python,pandas,dataframe,lambda,Python,Pandas,Dataframe,Lambda,使用映射将数据帧从字符串转换为数字(作为ID),这样我可以在完成机器学习作业(需要数字值进行培训)后将数字值映射回字符串 我的数据框中有两列:- 存储库名称(需要转换的字符串) 星星数(数值,因此无需执行任何操作) 我想将字符串转换为ID,并需要映射这些ID以在将来使用它 注意:我的字符串是像freecodecamp这样的词,而不是字符串中的整数值。您可以使用ord()在python中进行这些转换。例如,要将name转换为ASCII字符代码,可以使用以下循环 name = "John" name

使用映射将数据帧从字符串转换为数字(作为ID),这样我可以在完成机器学习作业(需要数字值进行培训)后将数字值映射回字符串

我的数据框中有两列:-

  • 存储库名称
    (需要转换的字符串)
  • 星星数
    (数值,因此无需执行任何操作)
  • 我想将字符串转换为ID,并需要映射这些ID以在将来使用它


    注意:我的字符串是像
    freecodecamp
    这样的词,而不是字符串中的整数值。

    您可以使用
    ord()
    在python中进行这些转换。例如,要将
    name
    转换为ASCII字符代码,可以使用以下循环

    name = "John"
    nameascii = []
    
    for c in name:
        nameascii.append(ord(c))
    
    print(nameascii)
    
    要转换回字符,请使用
    char()


    但是,如果您的模型是使用张量流构建的,
    tf.string_to_number
    函数可能更好(更快),因为转换可以同时完成,而上面的循环将按顺序运行

    您可以在python中使用
    ord()
    进行这些转换。例如,要将
    name
    转换为ASCII字符代码,可以使用以下循环

    name = "John"
    nameascii = []
    
    for c in name:
        nameascii.append(ord(c))
    
    print(nameascii)
    
    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")
    
    要转换回字符,请使用
    char()

    但是,如果您的模型是使用张量流构建的,
    tf.string_to_number
    函数可能更好(更快),因为转换可以同时完成,而上面的循环将按顺序运行

    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)和字符串(存储库名称)的字典,以便将来映射


    将来,您将得到索引(ID)和字符串(存储库名称)的字典以进行映射。

    如果您的字符串来自countable,我建议使用一种热编码,或者您可以尝试用相应的ascii值替换字符串。因为我的工作是基于机器学习作业,这将导致培训中的大量开销。如果字符串来自countable,我建议使用一个热编码,或者您可以尝试用相应的ascii值替换字符串。由于我的工作是基于机器学习工作,这将导致培训中的大量开销。不错。谢谢,很好。谢谢