熊猫数据框中的逻辑索引[重复]

Posted

技术标签:

【中文标题】熊猫数据框中的逻辑索引[重复]【英文标题】:Logical indexing in pandas dataframes [duplicate] 【发布时间】:2019-09-20 06:07:22 【问题描述】:

我有一些这样的数据:

+-----------+---------+-------+
| Duration  | Outcome | Event |
+-----------+---------+-------+
|       421 |       0 |     1 |
|       421 |       0 |     1 |
|       261 |       0 |     1 |
|        24 |       0 |     1 |
|        27 |       0 |     1 |
|       613 |       0 |     1 |
|      2454 |       0 |     1 |
|       227 |       0 |     1 |
|      2560 |       0 |     1 |
|       229 |       0 |     1 |
|      2242 |       0 |     1 |
|      6680 |       0 |     1 |
|      1172 |       0 |     1 |
|      5656 |       0 |     1 |
|      5082 |       0 |     1 |
|      7239 |       0 |     1 |
|       127 |       0 |     1 |
|       128 |       0 |     1 |
|       128 |       0 |     1 |
|      7569 |       1 |     1 |
|       324 |       0 |     2 |
|      6395 |       0 |     2 |
|      6196 |       0 |     2 |
|        31 |       0 |     2 |
|       228 |       0 |     2 |
|       274 |       0 |     2 |
|       270 |       0 |     2 |
|       275 |       0 |     2 |
|       232 |       0 |     2 |
|      7310 |       0 |     2 |
|      7644 |       1 |     2 |
|      6949 |       0 |     3 |
|      6903 |       1 |     3 |
|      6942 |       0 |     4 |
|      7031 |       1 |     4 |
+-----------+---------+-------+

现在,对于每个 Event,将 Outcome 0/1 视为失败/通过,我想将失败/通过事件的总数 Duration 分别汇总到 2 个新列中(或 1 个,只要确保可读性)。

我是数据框的新手,我觉得这里涉及到重要的逻辑索引。解决这个问题的最佳方法是什么?

【问题讨论】:

能否将数据框添加为文本并粘贴到此处?还请添加预期的数据框,以便我们可以查看和复制问题。谢谢 请将数据框数据包含为文本而不是图像。 df.groupby(['Event', 'Outcome']).Duration.sum()? @anky_91:请参见上文。这有帮助吗? @user2314737:请参见上文。这有帮助吗? 【参考方案1】:

df.groupby(['Event', 'Outcome'])['Duration'].sum()

所以你按事件和结果分组,查看持续时间列,然后取每个组的总和。

【讨论】:

【参考方案2】:

你也可以试试:

pd.pivot_table(index='Event', 
               columns='Outcome', 
               values='Duration', 
               data=df,
               aggfunc='sum')

它为您提供了一个包含两列的表格:

+---------+-------+------+
| Outcome |   0   |  1   |
+---------+-------+------+
| Event   |       |      |
+---------+-------+------+
| 1       | 35691 | 7569 |
| 2       | 21535 | 7644 |
| 3       |  6949 | 6903 |
| 4       |  6942 | 7031 |
+---------+-------+------+

【讨论】:

以上是关于熊猫数据框中的逻辑索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章

列值不在熊猫数据框中的索引中

如何更改熊猫数据框中的单个索引值?

根据索引在熊猫数据框中查找特定列的值[重复]

使用索引号同时更改熊猫数据框中的多个列名(不是所有列名)

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?

根据列名重新排序熊猫数据框中的列[重复]