python - 虚拟变量python的数据操作

标签 python pandas

我有一个数据框如下(示例如下)

Date       event  A B C D
2015-10-01  A     1 0 0 0
2015-10-02  A|B   1 1 0 0
2015-11-01  C     0 0 1 0 
2015-10-07  D     0 0 0 1

这里 A 表示仅发生了事件 A,A|B 表示 A 和 B 都发生在特定的一天。现在我已经为该事件形成了虚拟变量,如上所述。随后我想将 B、C 和 D 加入一项名为“小”的赛事。所以我的输出看起来像:

Date       event  A  Minor
2015-10-01  A     1   0
2015-10-02  A|B   1   1
2015-11-01  C     0   1
2015-10-07  D     0   1

正如您在第二行中看到的,Minor 等于 1,因为 B 也发生在这一天。我有点困惑如何解决这个问题。实际上,我有 20 多列需要分组为次要的列。任何帮助将不胜感激。

最佳答案

使用分配 + 删除

cols = list('BCD')
df.assign(Minor=df[cols].sum(1)).drop(cols, 1)

        Date event  A  Minor
0 2015-10-01     A  1      0
1 2015-10-02   A|B  1      1
2 2015-11-01     C  0      1
3 2015-10-07     D  0      1

关于python - 虚拟变量python的数据操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41951765/

相关文章:

python - Pandas :将具有重复行名的数据 reshape 为列

python - 使用 pandas 模块将 excel 单元格值分配给变量 [Python 3.8,Linux]

python - 用 numpy 统计

python - Numpy矩阵行列式精度问题

python - 如何在离线 Linux 机器上为 nltk 安装 english.pickle

python - 如何实现处理 URL 的工作线程队列

Python多行到一行

python - 使用 Pandas 标记每组的第 N 行

python - 为数据框中的每一行查找 n 个最低值

python - 在 Python 中查找字典的最小键时的特殊情况