绘制pandas集团的结果

我开始学习pandas,并试图find最艰难的(或pandasthonic?)方式来完成某些任务。

假设我们有一个DataFrame,列A,B和C.

  • 列A包含布尔值:每行的A值为true或false。
  • B列有一些我们想要绘制的重要值。

我们想要发现的是,将A设置为false的行的B值之间的细微差别与具有A的行的B值是正确的。

换句话说, 我怎样才能根据列A的值(true或false)进行分组,然后在同一个图上绘制两个组的列B的值? 这两个数据集应该有不同的颜色,以便能够区分这些点。


接下来,让我们给这个程序增加一个特性:在绘图之前,我们要为每一行计算另一个值并将其存储在D列中。这个值是logging之前整个五分钟内存储在B中的所有数据的平均值 – 但我们只包含存储在A中的具有相同布尔值的行

换句话说, 如果我有一行,其中A=Truetime=t ,我想计算D列的值,它是从时间t-5t所有logging的B的均值,它们具有相同的A=True

在这种情况下,我们怎样才能在A的值上执行groupby,然后将这个计算应用到每个单独的组,然后绘制这两个组的D值?

One Solution collect form web for “绘制pandas集团的结果”

我认为@herrfz达到了所有的高点。 我会详细说明一下:

 import pandas as pd import numpy as np import matplotlib.pyplot as plt sin = np.sin cos = np.cos pi = np.pi N = 100 x = np.linspace(0, pi, N) a = sin(x) b = cos(x) df = pd.DataFrame({ 'A': [True]*N + [False]*N, 'B': np.hstack((a,b)) }) for key, grp in df.groupby(['A']): plt.plot(grp['B'], label=key) grp['D'] = pd.rolling_mean(grp['B'], window=5) plt.plot(grp['D'], label='rolling ({k})'.format(k=key)) plt.legend(loc='best') plt.show() 

在这里输入图像说明

  • bash:mkvirtualenv:找不到命令
  • 使用BeautifulSoup删除标签,但保留其内容
  • 使用Python setuptools安装后的脚本
  • 是否有一个相当于C ++的“for ... else”Python循环?
  • 如何将OrderedDict转换为python3中的常规词典
  • numpy.fft和scipy.fftpack有什么区别?
  • Python中的类C结构
  • Python 2.7:整数到最近的整数
  • 如何推出我自己的pypi?
  • Python整数到下一百
  • 在Python中插入一个Python datetime.datetime对象