在Python中根据DF创建要素表

Create a feature table in Python from a df(在Python中根据DF创建要素表)
本文介绍了在Python中根据DF创建要素表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下df:

 id    step1 step2 step3 step4 .... stepn-1, stepn, event 
  1       a     b    c     null         null  null    1
  2       b     d    f     null         null  null    0
  3       a     d    g      h             l    m      1      

其中id表示会话,步骤表示特定路径,事件表示是否发生了特定的事情

我想要创建一个功能存储,我们可以在其中执行所有可能的步骤(a、b、c、...一直到某个任意数字),并使它们成为列。然后,我希望x列保持id,如果该会话命中列中的该步骤,则它只填充1或0。结果如下:

id  a  b  c  d  e  f  g ... n event
 1  1  1  1  0  0  0  0     0   1
 2  0  1  0  0  0  1  0     0   0
 3  1  0  0  1  0  0  1     1   1

我有一个包含所有可能步骤的唯一列表,我假定这些步骤将用于构造新表。但在那之后,我在苦苦思索如何创造这个。

推荐答案

您正在寻找的内容经常用于机器学习,称为一热编码

有一个专门为此目的设计的 pandas 功能,名为pd.get_dummies()

step_cols = [c for c in df.columns if c.startswith('step')]
other_cols = [c for c in df.columns if not c.startswith('step')]

new_df = pd.get_dummies(df[step_cols].stack()).groupby(level=0).max()
new_df[other_cols] = df[other_cols]

输出:

>>> new_df
   a  b  c  d  f  g  h  l  m  id  event
0  1  1  1  0  0  0  0  0  0   1      1
1  0  1  0  1  1  0  0  0  0   2      0
2  1  0  0  1  0  1  1  1  1   3      1

这篇关于在Python中根据DF创建要素表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)