【问题标题】:Creating Dummies in Pandas with conditional statement [duplicate]使用条件语句在 Pandas 中创建傻瓜 [重复]
【发布时间】:2022-01-21 23:39:47
【问题描述】:

在我的数据集中,我想为变量“eps”创建虚拟变量。条件应该是这样的,如果某家公司的 eps 超过 10 欧元,我想分配 0,否则为 1。

这是示例图片:

【问题讨论】:

  • 我强烈建议您在这里阅读有关 stackoverflow 上的 how to ask a question 的信息。在任何情况下,IIUC 您都希望根据 EPS 是否大于 10 来填充 1 或 0 的“虚拟”列。如果是这样,您可以尝试以下操作:import numpy as np,然后创建该列df['dummies'] = np.where(df['EPS']>10,1,0)
  • 非常感谢。是的,我会读的。

标签: pandas conditional-statements


【解决方案1】:

我们可以先使用numpy.where 在新列中分配一个布尔值:

>>> import numpy as np

>>> df["Dummies"] = np.where(df["Eps"] > 10, 1, 0)
>>> df
    stock_name  Eps Dummies
0   Apple       20  1
1   Tesla       25  1
2   Berkshire   10  0

然后我们甚至可以使用pivot_table 来获得一个虚拟矩阵格式:

>>> pd.pivot_table(df, values='Dummies', columns=['stock_name'], aggfunc=np.min)
stock_name   Apple  Berkshire   Tesla
Dummies      1      0           1

【讨论】:

    猜你喜欢
    • 2017-04-11
    • 2020-06-18
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2020-03-03
    相关资源
    最近更新 更多