繁体   English   中英

创建虚拟变量和数据整理

[英]Creating a dummy variable and data wrangling

我有一个看起来像这样的数据框:

在此处输入图片说明

我需要创建一个新的数据框,其中学生姓名是索引,课程编号是列,值为 0 或 1,具体取决于学生是否参加了该课程。

我已经尝试过pd.get_dummies()函数,但结果太乱了,无法使用,因为我仍然必须将学生姓名压缩为仅在行中出现一次。

我对如何实现所需的数据框的想法不多了。

让我们创建源数据框:

import pandas as pd 

df1 = pd.DataFrame({
    'Student name': ['Bill Mumy', 'Geraldine Ferraro', 'Geraldine Ferraro', 'Laura Lippman', 'Laura Lippman', 'Edward Koch', 'Celeste Holm'],
    'Course number': ['ARTS516', 'ARTS516', 'ARTS516', 'ARTS516', 'ARTS516', 'ARTS401', 'ARTS401']
})
df1.head(10)

输出:

输出

要将学生姓名转换为行并将课程名称转换为列,可以使用“pivot_table”函数:

df2 = df1.pivot_table(index = 'Student name', columns = 'Course number', aggfunc = 'size')
df2.head(10)

输出:

输出

要将 Nan 值替换为零并将数值替换为一个函数,可以使用“applymap”:

df2 = df2.applymap(lambda x: 0 if pd.isna(x) else 1)
df2.head(10)

输出:

输出

暂无
暂无

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

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