Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有图形和情节的循环_Python_Pandas_Loops_Matplotlib_Plot - Fatal编程技术网

Python 有图形和情节的循环

Python 有图形和情节的循环,python,pandas,loops,matplotlib,plot,Python,Pandas,Loops,Matplotlib,Plot,我试图做一个循环,每个I都有一个带有两个图的图形。两个图之间的差异由一个二进制列给出。例如: train = pd.DataFrame({'vehicle': ['car', 'truck', 'bus', 'car', 'bus' ], 'sex': ['male','male','male','female','female'], 'income': ['60000', '50000', '65000', '700

我试图做一个循环,每个
I
都有一个带有两个图的图形。两个图之间的差异由一个二进制列给出。例如:

train = pd.DataFrame({'vehicle': ['car', 'truck', 'bus', 'car', 'bus' ], 
                   'sex': ['male','male','male','female','female'],
                   'income': ['60000', '50000', '65000', '70000', '60000'],
                   'age': [31,25,67,90,18],
                   'crash' : [1,0,0,0,1]
})
每个图必须有两个图表,它显示了所有变量与两种情况下
(crash=1和crash=0)的
crash
列之间的关系。这是我的代码,但仍然不起作用:

for i in train.columns:
    i_1 = train[i][train["crash"] == 1]
    i_0 = train[i][train["crash"] == 0]

    fig = plt.figure(figsize=(5, 10)) 
    fig.add_subplot(1, 2, 2)
    ax1 = fig.add_subplot(1,1,1)
    ax2 = fig.add_subplot(1,2,2)
    ax1.plot(train[i], i_1)
    ax2.plot(train[i], i_0)
    plt.show()
因此,图1有两个图。图1是
碰撞=1的车辆的
计数
,图2是
碰撞=0的车辆的
计数
。图2,图1是与
crash=1
发生性关系的
count
,图2是与
crash=0发生性关系的
count
。等等总共(在本例中)4位数


有什么想法吗?

您需要使用聚合来获取计数指标

下面的示例应该让您开始学习:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

train = pd.DataFrame({'vehicle': ['car', 'truck', 'bus', 'car', 'bus' ], 
                   'sex': ['male','male','male','female','female'],
                   'income': ['60000', '50000', '65000', '70000', '60000'],
                   'age': [31,25,67,90,18],
                   'crash' : [1,0,0,0,1]
})

for i in train.columns:
    if i == 'crash':
        continue

    table = pd.pivot_table(train[[i, 'crash']], index=[i], aggfunc=np.sum)
    table.plot.bar()
有什么问题吗?“它不工作”不是一个问题陈述。