我有一个这样的框架
presence_data = pd.DataFrame({
"id": ["id1", "id2"],
"presence": [
["A", "B", "C", "A"],
["G", "A", "B", "I", "B"],
]
})
我想把上面的改成这样的...
目前,我有一种方法可以遍历行并遍历存在列中的值,然后根据遇到的值创建/更新具有计数的新列。我想看看有没有更好的方法。
最佳答案
根据 Henry Ecker 在评论中的反馈进行编辑,不妨在这里找到更好的答案:
您可以使用 pd.explode()
将列表中的所有内容变成单独的行,然后使用 pd.crosstab()
计算出现次数。
df = presence_data.explode('presence')
pd.crosstab(index=df['id'],columns=df['presence'])
这给了我以下内容:
presence A B C G I
id
id1 2 1 1 0 0
id2 1 2 0 1 1
关于pandas - 如何将包含值列表的数据框列转换为具有出现次数的单独列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70139966/