问题描述
我有一个数据框,其中每个文档的 pos 值被拆分为单个标记。如何将各个 pos 值合并到一个由逗号分隔的单元格中? 所以现在我有类似的东西
async function getMessagesFromChat(JWT_header,chatId) {
if (JWT_header !== '') {
const respnse = await axios.get(`${SECURED_API_PATH}/messages/chat/${chatId}`,{
// ^^^^^
headers: {authorization: JWT_header},params: {size: 80,page: 0}
});
console.log('messages (fetch)',response.data)
return response.data
}
// else return undefined
}
我怎样才能把它变成
doc_id sentence_id token_id token pos entity
1 text1 1 1 xxxxxx PRON
2 text1 1 2 xxxx AUX
3 text1 1 3 xxx AUX
4 text1 1 4 xxxxxxx VERB
5 text2 1 5 xxxx DET
6 text2 1 6 xxx NOUN
我需要创建一个新的数据框还是有一个可以直接执行此操作的 Spacy 函数? 谢谢
解决方法
你可以像这样折叠它:
aggregate(pos ~ doc_id,doc_df,paste,collapse = ",")
您可以将其存储在一个单独的数据框中,并合并到您想要从原始数据中包含的任何其他列中,或者如果您只需要这两个列,那么您可以直接使用它。
,我们可以使用 dplyr
library(dplyr)
df1 %>%
group_by(doc_id,entity) %>%
summarise(pos = toString(pos),.groups = 'drop')