在 Pandas 中,是否存在与.groupby相反的“ungroup by”操作? - python

假设我们采用熊猫数据框...

    name  age  family
0   john    1       1
1  jason   36       1
2   jane   32       1
3   jack   26       2
4  james   30       2

然后做一个groupby() ...

group_df = df.groupby('family')
group_df = group_df.aggregate({'name': name_join, 'age': pd.np.mean})

然后执行一些汇总/汇总操作(在我的示例中,我的函数name_join汇总名称):

def name_join(list_names, concat='-'):
    return concat.join(list_names)

因此,分组的摘要输出为:

        age             name
family                      
1        23  john-jason-jane
2        28       jack-james

问题:

有没有一种快速有效的方法来从汇总表中进行以下操作?

    name  age  family
0   john   23       1
1  jason   23       1
2   jane   23       1
3   jack   28       2
4  james   28       2

(注意:age列值仅是示例,在此示例中取平均值后,我不在乎丢失的信息)

我认为自己可以做到的方式看起来效率不高:

  • 创建空数据框
  • group_df中每一行的

  • ,将名称
  • 分开

  • 返回一个数据帧,该数据帧的行与起始行中的名称一样多。
  • 将输出追加到空数据框
  • 参考方案

    粗略的等价词是.reset_index() ,但是将其视为groupby()的“相反”可能没有帮助。

    您正在将一个字符串拆分为多个片段,并保持每个片段与“家庭”的关联。 This old answer of mine完成工作。

    只需首先将“家庭”设置为索引列,请参考上面的链接,然后在最后添加reset_index()即可获得所需的结果。

    在 Pandas 中放置多列 - python

    我正在尝试使用以下代码在熊猫数据框中按索引号删除多列(数据集中的第2列和第70列,分别索引为1和69):df.drop([df.columns[[1, 69]]], axis=1, inplace=True) 我收到以下错误:TypeError: unhashable type: 'Index' 在我的代码中,[1,69]突出显示并说:E…

    在 Pandas df中找到timedelta对象的均值和标准差 - python

    我想通过银行与下面显示的两列mean来计算standard deviation的timedelta和dataframe。当我运行代码(也显示在下面)时,出现以下错误:pandas.core.base.DataError: No numeric types to aggregate 我的数据框: bank diff Bank of Japan 0 days 0…

    在 Pandas 图中仅隐藏轴标签,而不是整个轴 - python

    我可以使用以下命令清除Pandas图中xlabel的文本:plt.xlabel("") 而是可以隐藏标签吗?可能类似于.xaxis.label.set_visible(False)。 参考方案 From the Pandas docs- Series和DataFrame上的plot方法只是对plt.plot()的简单包装:这意味着您可以使…

    在 Pandas 中使用带有MultiIndex的.loc? - python

    有谁知道是否可以使用DataFrame.loc方法从MultiIndex中进行选择?我有以下DataFrame,并希望能够访问('at', 1),('at', 3),('at', 5)等等的索引(非顺序)位于“Dwell”列中的值。我很希望能够执行类似data.loc[['at'…

    Python Pandas:按分组分组,平均? - python

    我有一个像这样的数据框:cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6 我想计算每个集群每个组织的平均时间。预期结果:cluster mean(time) 1 15 ((8+6)/2+23)/2 2 54 (74+34)/2 3 6 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…