繁体   English   中英

NLP:将数据集预处理为新数据集

[英]NLP: pre-processing dataset into a new dataset

我需要帮助处理未排序的数据集。 对不起,如果我是一个完整的菜鸟。 我以前从来没有做过那样的事。 如您所见,每个对话都由一个 dialogueID 标识,该 dialogueID 由多行“from”和“to”以及文本消息组成。 我想将来自 dialogueID 的同一发件人的短信连接到一列,并将接收方的短信连接到另一列。 这样,我就可以得到一个只有 [dialogueID, sender, receiver] 的新 csv 文件。

数据集 新的数据集应该是这样的新数据集

我看了多个教程,真的很难弄清楚如何去做。 我在这篇9 年前的帖子中读到,遍历数据框并不是一个好主意。 有人可以用代码片段帮助我,或者给我一个提示,告诉我如何正确地做到这一点而不会使事情过于复杂吗? 我想到了类似下面这个伪代码的东西,但是 100 万行的性能不是很好,对吧?

while !endOfFile
  for dialogueID in range (0, 1038324)
    if dialogueID+1 == dialogueID and toValue.isnull()
      concatenate textFromPrevRow + " " + textFromCurrentRow
      add new string to table column sender
    else
      add text to column receiver

编辑 1

根据您的澄清,这就是我相信您正在寻找的。

创建一个聚合 function,它基本上将您的字符串值与换行符连接起来。 然后按dialogueID分组并应用您的聚合。

d = {}
d['from'] = '\n'.join
d['to'] = '\n'.join
new_df = dialogue_dataframe.groupby('dialogueID', as_index=False).agg(d)

之后根据需要重命名列:

df.rename(columns={"from": "sender", "to": "receiver"})

原答案

不太确定我是否理解您要实现的目标,但也许会提供一些见解。 也许写几行你希望得到的表格,以便更好地说明

虽然数据的确切结构(以及您的任务)并不完全清楚,但也许DataFrame.apply或者更确切地说DataFrame.aggregate可以帮助您加快速度。 另外,我会聚合成一本字典或 dataframe 由对话 ID 索引。 这样您就可以轻松检查给定的对话/发件人是否已经存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM