我开始学习 Pandas,并试图找到最 Pythonic(或 Panda-thonic?)的方法来完成某些任务。
假设我们有一个包含 A、B 和 C 列的 DataFrame。
- A 列包含布尔值:每一行的 A 值要么为真,要么为假。
- B 列有一些我们想要绘制的重要值。
我们想要发现的是 A 设置为 false 的行的 B 值与 A 设置为 true 的行的 B 值之间的细微差别。
换句话说,我如何按 A 列的值(真或假)进行分组,然后在同一张图上绘制两组 B 列的值?这两个数据集应该用不同的颜色来区分这些点。
接下来,让我们为这个程序添加另一个功能:在绘图之前,我们要为每一行计算另一个值并将其存储在 D 列中。这个值是在记录前整整五分钟存储在 B 中的所有数据的平均值 - 但是我们只包含存储在 A 中的具有相同布尔值的行。
换句话说,如果我有一行 whereA=True
和time=t
,我想计算列 D 的值,它是从时间t-5
到t
具有相同的所有记录的 B 的平均值A=True
。
在这种情况下,我们如何对 A 的值执行 groupby,然后将此计算应用于每个单独的组,最后绘制两组的 D 值?