我有包含主题 ID 的以下列,并希望通过取该 ID 的分数的总和并将其放入以 ID 和分数作为键/值的字典中,将其与它右侧的评分列进行匹配。这是两列:
subject Score
phchp005 1
phchp005 0
phchp006
phchp006
phchp006 0
phchp006 0
phchp006 0
phchp006 0
phchp006 1
phchp006 1
phchp006 1
phchp008
所以输出将是这样的字典:
{phchp005: 1, phchp006: 3, phchp008: 0}
还有 NaN 值,我将只用 0 填充。 谢谢。
答案 0 :(得分:1)
通过 groupby()
尝试:
out=df.groupby('subject')['Score'].sum().astype(int).to_dict()
out
的输出:
{'phchp005': 1, 'phchp006': 3, 'phchp008': 0}
答案 1 :(得分:1)
生成数据帧测试数据:
df = pd.DataFrame(
{
"subject": 2 * ["phchp005"] + 9 * ["phchp006"] + 1 * ["phchp008"],
"Score": [1] + 7 * [0] + 3 * [1] + [0],
}
)
使用 Groupby:
df.groupby("subject").sum().to_dict()["Score"]
输出:
{'phchp005': 1, 'phchp006': 3, 'phchp008': 0}