Python Pandas Series if else box plot

时间:2018-02-21 14:48:19

标签: python python-3.x pandas matplotlib data-science

我有很多字典格式的数据,我试图使用pandas打印基于IF ELSE语句的字符串。对于我的例子,我在dict中编造了一些数据,然后转向Pandas:

df = pd.DataFrame(dict(a=[1.5,2.8,9.3],b=[7.2,3.3,4.9],c=[13.1,4.9,15.9],d=[1.1,1.9,2.9]))

df

返回:

    a   b   c   d
0   1.5 7.2 13.1 1.1
1   2.8 3.3 4.9 1.9
2   9.3 4.9 15.9 2.9

我的IF ELSE声明:

for col in df.columns:
    if (df[col] < 4).any():
        print('Zone %s does not make setpoint' % col)
    else:
        print('Zone %s is Normal' % col)

返回:

Zone a does not make setpoint
Zone b does not make setpoint
Zone c is Normal
Zone d does not make setpoint

但是现在我想添加一个额外的东西来创建一个盒子图,我不是在设定点,而是平均它设定点的数据框。我知道这是熊猫系列,但可以使用pandas.Series.plot.box()吗?

这是我在df.apply(lamba x:)函数中使用的IF ELSE语句,我被困在试图让盒子盒图在大熊猫系列中工作......我非常感谢任何建议!

import matplotlib.pyplot as plt

def _print(x):
    if (x < 4).any():
        print('Zone %s does not make setpoint' % x.name)
        df.boxplot()
        plt.show()
    else:
        print('Zone %s is Normal' % x.name)
        print('The average is %s' % x.mean())

我在拨打df.apply(lambda x: _print(x))

时收到错误消息
  

module 'matplotlib' has no attribute 'show'

1 个答案:

答案 0 :(得分:0)

我真的不知道这是不是你想要的,但是......你在问:

  

我想添加额外的内容以创建一个盒子图

您正在尝试使用... df.Series.plot.box(),它会输出错误AttributeError: 'DataFrame' object has no attribute 'Series'

请尝试使用Enumerate devices over a network,然后会在每次plt.show()来电时显示...

Imgur