pandas groupby使用apply操作中的标签创建一个新的数据框

时间:2017-08-11 18:33:09

标签: python pandas

我想在应用我的函数后创建一个带有标记列('off')的新数据框。

df_onoff = df_sample.groupby('id')['digits'].apply(lambda nums: "%d" % ', '.join(format(n%2**60,'060b') for n in nums).count('01'))

现在是输出:

id
4013    466
4014    592
4015    566
4016    466

我希望输出为:

id      off
4013    466
4014    592
4015    566
4016    466

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

只需添加reset_index,因为输出为Series

df_onoff = df_sample.groupby('id')['digits']
                    .apply(lambda nums: "%d" % ', '.join(format(n%2**60,'060b') for n in nums).count('01'))
                    .reset_index()

如果可能,请添加参数名称:

.reset_index(name='off')

或重命名列:

.reset_index().rename(columns={'digits':'off'})