熊猫数据框中的逻辑索引[重复]
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 |
+---------+-------+------+
【讨论】:
以上是关于熊猫数据框中的逻辑索引[重复]的主要内容,如果未能解决你的问题,请参考以下文章