在python中使用multiindex合并多个数据框
Posted
技术标签:
【中文标题】在python中使用multiindex合并多个数据框【英文标题】:Merge multiple dataframes using multiindex in python 【发布时间】:2019-08-30 16:47:59 【问题描述】:我有 3 个系列,它们是由下面显示的代码生成的。我在下面展示了一个系列的代码
我想使用列(subject_id、hadm_id、icusstay_id)合并 3 个这样的系列/数据框,但不幸的是,这些标题不会显示为列名。如何将它们转换为列并使用它们与另一个类似数据类型的系列/数据框合并
我正在根据下面给出的条件从另一个数据帧 (df) 生成系列。虽然我已经尝试将此系列转换为数据框,但它仍然不显示索引,而是将列名显示为索引。我在下面显示了输出。我希望将值 'Subject_id'、'hadm_id'、'icusstay_id' 与其他列 'val_bw_80_110' 一起作为数据框中的列名,以便我可以使用这 3 个 id ('Subject_id'、'hadm_id' ,'icusstay_id')
s1 =
df.groupby(['subject_id','hadm_id','icustay_id'['val_bw_80_110'].mean()
我希望得到一个输出,其中 id (subject_id,hadm_id,icusstay_id) 被转换为列名,并可用于加入/合并其他数据框。
【问题讨论】:
【参考方案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()
【讨论】:
以上是关于在python中使用multiindex合并多个数据框的主要内容,如果未能解决你的问题,请参考以下文章
合并两个具有重叠 MultiIndex 列的 DataFrame
在 Pandas 中将两个 MultiIndex 级别合并为一个