【问题标题】:Pandas, bygroup operationPandas,分组操作
【发布时间】:2014-04-17 13:52:18
【问题描述】:

我在 pandas 中使用 groupby() 下一个输出(A、B、C 是输入表中的列)

                 C
A    B        
0    0           6
     2           1
     6           5
.    .           .  

输出细节:[244 rows x 1 columns]我只想拥有所有 3 列而不是 1 列,怎么可能?

输出,我希望:

   A     B      C
   0     0      6
   0     2      1
   .     .      .

【问题讨论】:

    标签: pandas


    【解决方案1】:

    它似乎没有记录,但很简单:gb.bfill(),参见这个例子:

    In [68]:
    
    df=pd.DataFrame({'A':[0,0,0,0,0,0,0,0],
                     'B':[0,0,0,0,1,1,1,1],
                     'C':[1,2,3,4,1,2,3,4],})
    In [69]:
    
    gb=df.groupby(['A', 'B'])
    In [70]:
    
    print gb.bfill()
       A  B  C
    0  0  0  1
    1  0  0  2
    2  0  0  3
    3  0  0  4
    4  0  1  1
    5  0  1  2
    6  0  1  3
    7  0  1  4
    
    [8 rows x 3 columns]
    

    但我不明白你为什么需要这样做,你最终不是得到了原来的DataFrame(可能只是重新排列了)吗?

    【讨论】:

    • 感谢和抱歉回复晚了(假期:-)。我有三列参数,前两列是独立的(例如读者和书籍),最后一列只是指针,那个用户读过这本书。有可能某些用户多次阅读某本书,每次尝试保存的都是唯一行。我所做的是某种排名,我按唯一值对用户和书籍进行分组,并总结指针的数量。我可以使用函数'groupby(['User', 'Book']).sum()'来做到这一点。不幸的是,我现在只有一列,并且希望以新格式恢复我的表格。
    • 其实一切,我想要的都在这里描述:stackoverflow.com/questions/20181456/… Function as_index=False 很重要。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2017-03-17
    • 2021-11-07
    • 2013-05-17
    • 1970-01-01
    • 2015-05-06
    • 2022-12-22
    相关资源
    最近更新 更多