【问题标题】:Creating a column variable taking the mean of a variable conditional on two other variables创建一个列变量,以其他两个变量为条件的变量的平均值
【发布时间】:2017-03-31 23:34:54
【问题描述】:

我有一个数据框显示每个给定条件的平均值 'dwdime'

DIMExCand_means = DIMExCand.groupby(['cycle', 'coded_state', 'party.orig', 'comtype']).mean()

我使用以下命令和输出从 DIMExCand_means 创建了一个数据透视表:

DIMExCand_master = pd.pivot_table(DIMExCand_means,index=["Cycle","State"])

但是,一些数据会在此过程中丢失。我想在'DIMExCand_master' 数据框中添加列,其中包含'party.orig''comptype' 的每个可能组合的平均'dwdime' 分数,因为这将允许我每个'cycle'-'coded_state' 有一个条目。

【问题讨论】:

    标签: python pandas numpy pivot


    【解决方案1】:

    让我们试试吧:

    DIMExCand_means = DIMExCand_means.reset_index()
    DIMExCand_master = DIMExCand_master.reset_index()
    
    pd.merge(DIMExCand_means, DIMExCand_master, left_on=['cycle','coded_state'], right_on=['Cycle','State'])
    

    【讨论】:

      【解决方案2】:

      谢谢!

      我最终选择了:

      DIMExCand_dime = pd.pivot_table(DIMExCand, values = 'dwdime', index ["Cycle","State"], columns='ID', aggfunc=np.mean)

      【讨论】: