在python中使用multiindex合并多个数据框

时间:2019-04-09 11:40:06

标签: python-3.x pandas indexing merge pandas-groupby

我有3个序列,这些序列是由下面的代码生成的。我在下面显示了一个系列的代码

我想使用列(subject_id,hadm_id,icustay_id)合并3个这样的系列/数据框,但不幸的是这些标题没有显示为列名。如何将它们转换为列,并用于与其他类似数据类型的系列/数据框合并

enter image description here

我正在根据下面给出的条件从另一个数据帧(df)生成序列。尽管我已经尝试过将此系列转换为数据框,但它仍然不显示索引,而是将列名显示为索引。我在下面显示了输出。我想将值'Subject_id','hadm_id','icustay_id'与其他列'val_bw_80_110'一起作为数据帧中的列名查看,以便我可以使用这3个ID('Subject_id','hadm_id' ,'icustay_id')

s1 = 
df.groupby(['subject_id','hadm_id','icustay_id'['val_bw_80_110'].mean()

我期望输出将id(subject_id,hadm_id,icustay_id)转换为列名,并可以用于与其他数据框联接/合并。

1 个答案:

答案 0 :(得分:1)

您可以将参数as_index=False添加到DataFrame.groupby或使用Series.reset_index

df = df.groupby(['subject_id','hadm_id','icustay_id'], as_index=False)['val_bw_80_110'].mean()

或者:

df = df.groupby(['subject_id','hadm_id','icustay_id'])['val_bw_80_110'].mean().reset_index()