双条柱状图

2024-06-01 22:10:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想绘制一个直方图,显示“匹配”列中“amb_o”、“intel_o”、“sinc_o”、“fun_o”、“attr_o”、“sinc_o”列的平均值。因此,对于匹配(1)与不匹配(0),我希望看到相邻的“amb_o”的平均值,以及其他5列的平均值。换言之,我希望看到6个属性中以匹配结束的日期与以不匹配结束的日期的平均评分。我该怎么做

(该数据来自一项速配实验,参与者在该实验中对约会对象的志向、智力、真诚等属性的评分为0-10)

matchesdf = (dating.filter(['amb_o','intel_o','sinc_o','fun_o','attr_o','shar_o', 'match']))

# example of dataframe

dating = pd.DataFrame({'amb_o': [7, 8, 5], 
                       'intel_o': [5, 9, 2], 
                       'sinc_o': [8, 9, 2], 
                       'fun_o': [6, 9, 5], 
                       'match': [0, 1, 1]})

Tags: 数据属性match绘制直方图参与者评分平均值
1条回答
网友
1楼 · 发布于 2024-06-01 22:10:32
  1. 计算平均数
  2. 操作行和列多索引以获取数据集
  3. 绘图()
dating = pd.DataFrame({'amb_o': [7, 8, 5], 
                       'intel_o': [5, 9, 2], 
                       'sinc_o': [8, 9, 2], 
                       'fun_o': [6, 9, 5], 
                       'match': [0, 1, 1]})

dfa = (dating
     .groupby("match")
     .agg({c:"mean" for c in dating.columns if c!="match"})
)
dfa.columns.set_names("cat",inplace=True)
(dfa
    # bring match as part of row multi-index
    .unstack().to_frame()
     # rows to columns for plot
    .T
    .plot(kind="hist")
)

enter image description here

相关问题 更多 >