我正在尝试循环,其中每个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
的所有变量和(crash=1 and crash=0)
列之间的关系。这是我的代码,但它仍然无效:
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是具有count
的车辆的crash=1
,而图2是具有count
的车辆的crash=0
。图2,图1是count
与crash=1
的性别,而图2是与count
性别的crash=0
。等等......总共(在这种情况下)有4个数字。
有什么想法吗?
答案 0 :(得分:0)
您需要使用聚合来获取计数指标。
以下示例可帮助您入门:
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()