如何根据字符串的相似性和含义合并csv的两个表

tf7tbtn2  于 2023-05-04  发布在  其他
关注(0)|答案(1)|浏览(141)

我在两个csv中有两个数据表。csv A包含教学中心A学生的数据,csv B包含教学中心B学生的数据。在每个csv中,都有一个记录,说明哪个家庭在补习中心登记。一个家庭可能有10个孩子,其中7个孩子就读于补习中心A,8个孩子就读于补习中心B,5个孩子就读于两个中心。我不知 prop 体哪个孩子上了哪个补习中心,我只知道孩子们的特征,比如他们的头发颜色、体重、性别、种族和他们上的学校。现在,我想匹配两个csv,以便根据孩子的特征,我可以找出哪个孩子参加了哪个补习中心。新合并的csv应形成一行来自参加补习中心A的每个孩子的数据,一行来自参加补习中心B的每个孩子的数据,以及一行来自参加两个补习中心的每个孩子的数据。如果就读于补习中心A的孩子在补习中心B中没有任何数据,则单元格可以保留为空。
当我合并学费A和学费B的数据时,可能会有错误匹配孩子数据的机会,所以我需要公式来研究单元格内的字符串,并比较学费A和学费B之间的字符串。例如,X家庭的孩子5有一个蓝色的笔记本,而Y家庭的孩子7有一个红色的笔记本,按理说这两个特征显示出很高的相似性,但实际上,他们是两个不同的人,我应该如何区分他们?
我还想尝试一种机器学习方法来解决这个问题,但我认为我需要首先将所有特征字符串转换为不同的浮点数,然后再将它们输入到我的模型中。

mccptt67

mccptt671#

要匹配两个CSV文件中的数据,可以使用pandas和模糊字符串匹配技术的组合。
以下是您可以遵循的步骤的概述:

  • 将两个CSV文件中的数据加载到pandas Dataframe 中。
  • 基于户籍公共列合并两个 Dataframe 。
  • 使用诸如Levenshtein距离之类的模糊字符串匹配技术来比较两个 Dataframe 之间的特征的字符串值。您可以使用Python中的fuzzywuzzy库来完成此操作。
  • 为将被视为匹配的相似性分数设置阈值,并且在合并的 Dataframe 中创建指示是否找到匹配的新列。
  • 如果仍然有不匹配的行,您可以手动检查它们或使用其他匹配技术,例如使用正则表达式或基于年龄或年级等其他属性进行匹配。

关于机器学习方法,您可以使用one-hot编码或单词嵌入等技术将特征的字符串值转换为数值特征。然后,您可以使用监督学习算法,如决策树,随机森林或逻辑回归,根据每个孩子的特征预测每个孩子参加的学费中心。您需要将数据拆分为训练集和测试集,并使用交叉验证技术来评估模型的性能。

相关问题