【问题标题】:Creating a dummy variable and data wrangling创建虚拟变量和数据整理
【发布时间】:2020-09-27 22:25:28
【问题描述】:

我有一个如下所示的数据框:

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

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

关于如何实现所需的数据框,我已经没有什么想法了。

【问题讨论】:

  • 你能添加数据帧的样本和所需的输出吗?没有数据很难重现
  • 请以可读的形式分享您的数据和您的尝试(如:文本最好以文本形式分享,而不是作为图像分享)

标签: python pandas dataframe dummy-variable


【解决方案1】:

让我们创建源数据框:

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)

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2021-07-16
    • 2018-04-06
    • 2020-01-31
    • 1970-01-01
    • 2021-07-25
    • 2016-12-12
    相关资源
    最近更新 更多