首页 > 解决方案 > 在 python/pandas 数据框中索引不同值的实例

问题描述

我对python相当陌生,我正在尝试自动执行一项任务来计算多个值的实例(学生缺勤类型),然后将它们吐回到每个学生的一行上。如果我只有一个值,我可以通过以下方式实现:

import pandas as pd
df = pd.read_csv('attendanceUAnumbersLISTONLY.csv', header=0)
  
nf=df['StudentId'].value_counts()
print(nf)
nf.to_csv('studentua.csv', index=True, header=False)

我要提取的数据框是一个 cognos 报告,它仅显示无故缺勤的每个实例的学生 ID 号。底层数据集如下所示:

学生卡 缺席类型
123456 UA
123456 UA
654321 UA

我最终希望输出是:

学生卡 数数
123456 2
654321 1

上面的代码将做到这一点。但是,如果我想提取除 UA 之外的值并将它们放入输出的不同列中,那就是我被卡住的地方。因此,如果我有 P(存在)的值,我想将它们导出到一个新列中,我可以将其导入另一个系统。

学生卡 UA
123456 2 7
654321 1 8

我无法理解如何做到这一点。

标签: pythonpython-3.xpandas

解决方案


如何首先groupby使用两列,然后size获取出现次数,unstack旋转级别索引级别AbsenceTypefillna填充未找到出现的位置:

df.groupby(['StudentId', 'AbsenceType']).size().unstack(level=1).fillna(0)

推荐阅读