当前位置: 首页 > 面试题库 >

从大pandas中的假人重构分类变量

东方和志
2023-03-14
问题内容

pd.get_dummies允许将类别变量转换为伪变量。除了重建分类变量很简单外,还有没有一种首选/快速的方法来做到这一点?


问题答案:

In [46]: s = Series(list(‘aaabbbccddefgh’)).astype(‘category’)

In [47]: s
Out[47]: 
0     a
1     a
2     a
3     b
4     b
5     b
6     c
7     c
8     d
9     d
10    e
11    f
12    g
13    h
dtype: category
Categories (8, object): [a < b < c < d < e < f < g < h]

In [48]: df = pd.get_dummies(s)

In [49]: df
Out[49]: 
    a  b  c  d  e  f  g  h
0   1  0  0  0  0  0  0  0
1   1  0  0  0  0  0  0  0
2   1  0  0  0  0  0  0  0
3   0  1  0  0  0  0  0  0
4   0  1  0  0  0  0  0  0
5   0  1  0  0  0  0  0  0
6   0  0  1  0  0  0  0  0
7   0  0  1  0  0  0  0  0
8   0  0  0  1  0  0  0  0
9   0  0  0  1  0  0  0  0
10  0  0  0  0  1  0  0  0
11  0  0  0  0  0  1  0  0
12  0  0  0  0  0  0  1  0
13  0  0  0  0  0  0  0  1

In [50]: x = df.stack()

# I don't think you actually need to specify ALL of the categories here, as by definition
# they are in the dummy matrix to start (and hence the column index)
In [51]: Series(pd.Categorical(x[x!=0].index.get_level_values(1)))
Out[51]: 
0     a
1     a
2     a
3     b
4     b
5     b
6     c
7     c
8     d
9     d
10    e
11    f
12    g
13    h
Name: level_1, dtype: category
Categories (8, object): [a < b < c < d < e < f < g < h]

因此,我认为我们需要一个函数来“执行”此操作,因为这似乎是很自然的操作。也许get_categories(),看这里



 类似资料:
  • 问题内容: 我想像这样重构代码: 我如何在Eclipse中自动执行此操作,因此x的类型提升到很长会导致因变量也改变其类型: ? 问题答案: 我通常的做法是将上游变量之一更改为long。这将导致Eclipse在每个您提供长值而不是int的赋值中给出错误。然后,我只需在每个控件上选择ctrl-1(快速修复),然后选择“将变量x更改为long”。 当新的类型不能直接分配给旧的类型时,此方法有效。

  • 对于一篇研究论文,我将使用套索模型进行分类和特征选择。我正准备使用一种热编码来处理分类数据,并需要找出哪些特征映射到原始分类值,以确定最终为最终模型选择了哪些特征。我在谷歌上搜索这个问题已经有一段时间了,但还没有找到答案。 scikit的一个热编码如何分配值?例如,假设某个变量的分类值为{1,2,3,4}。一个热编码是否按时间顺序将它们组织为虚拟对象(即,删除1,将第一个虚拟对象设置为值2,将第二

  • 问题内容: 我刚刚开始学习Java,并且很好奇Java是否有良好的对象分解方法?让我描述一个问题。在大型软件项目中,总是有诸如“核心”或“ ui”之类的大型类,它们往往具有许多方法,并且旨在作为较小类之间的中介。例如,如果用户单击某个窗口上的按钮,则该窗口的类将消息发送到“ ui”类。此类“ ui”类捕获此消息,并通过使用应用程序用户界面执行某些操作(通过其成员对象之一的调用方法)或通过将消息发布

  • 问题内容: 我正在用最简单的方法在熊猫中进行不区分大小写的合并。有没有一种方法可以正确地在合并?我是否需要使用(?i)或带有ignorecase的正则表达式?在下面的代码段中,我加入了一些国家,其中一个文件中可能是“美国”,另一个文件中可能是“美国”,我只是想把这种情况排除在外。谢谢! 问题答案: 将用于合并的两列中的值小写,然后在小写列中合并

  • 我使用了下面的函数,它获取成员的登录日期和合同长度,并返回一个修改后的数据框,其中包含每个成员的到期日期。该函数按预期工作,但我想知道是否有更干净的方法来编写嵌套函数。我知道python没有实现,但是有没有办法重写所有语句?

  • 使用df=pd.get后_dummies(df,列=['D']) 有没有一种方法,在不使用df[[a'、'B'、'C'、'D_Califorina'、'D_New York'、'D_Florida'、'E']的情况下,输出是这样的?

  • 并且生成失败: 任务“:MyProject:SetEnv”执行失败。 启动进程“command”export“时出现问题 我已经单独测试了它:值确实会被传递,并且我的测试任务接收所有东西,无论是systemProperty、environment变量还是jvmarg。 所以Gradle本身在这里并没有什么问题。 当我在实际项目中尝试时,问题就出现了。它使用Spring进行依赖注入。我可能错了,但看

  • 我有张桌子是这样的:TABLE 我希望为每个位置生成一个单行清单,列出使用可用的分析类型。因此,对于这列列表,我希望合并并按位置显示唯一值的单个列表。 所需表格_OUT 抱歉,没有代码。我在熊猫身上尝试过各种劈叉,没有接近。