绘图其他列中的值与列的总和

时间:2017-11-13 04:29:54

标签: python pandas

我有一个数据框,如下面的示例数据。我想创建一个图表,显示"正确"的总和。列中的每列其他4列,当这些列的值为1时。列是虚拟变量,所以"中文"列表示该记录被标记为中文。所以我想创建一个条形图,显示"正确"对于每个虚拟变量。

示例数据:

           Food  Chinese  Italian  Food Stands    \
176          1     0        0        0                     
148          0     0        0        0                    
143          0     1        0        0                      
45           0     1        0        0                    

     Correct  
176        0  
148        1  
143        0  
45         1  

2 个答案:

答案 0 :(得分:1)

使用pd.DataFrame.dot

df.drop('Correct', 1).T.dot(df.Correct).plot.bar()

enter image description here

答案 1 :(得分:0)

以下是一个工作示例,它使用掩码仅从更正 = 1

的行创建列总和
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame()
df['Chinese'] = [0,1,1,1,0,0,1]
df['Italian'] = [1,0,0,0,1,1,0]
df['Correct'] = [1,1,0,1,1,0,0]

df.mask(df['Correct'].apply(lambda x: bool(x)), inplace=True)
df[['Italian','Chinese']].sum().plot.bar()

plt.show()

enter image description here