假设我们采用熊猫数据框...
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()
即可获得所需的结果。
我正在尝试使用以下代码在熊猫数据框中按索引号删除多列(数据集中的第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 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…