熊猫能否将groupby汇总成一个列表,而不是总和,平均值等?

熊猫能否将groupby汇总成一个列表,而不是总和,平均值等?,第1张

熊猫能否将groupby汇总成一个列表,而不是总和,平均值等?

我的解决方案比您预期的要长一些,我敢肯定它可以缩短,但是:

g = df.groupby("A").apply(lambda x: pd.concat((x["B"], x["C"])))k = g.reset_index()k["i"] = k1.indexk["rn"] = k1.groupby("A")["i"].rank()k.pivot_table(rows="A", cols="rn", values=0)# output# rn   1   2   3   4   5   6# A   # 1   10  12  11  22  20   8# 2   10  11  10  13 NaN NaN# 3   14  10 NaN NaN NaN NaN

有点解释。第一行,

g = df.groupby("A").apply(lambda x: pd.concat((x["B"],x["C"])))
。这一组
df
依据
A
,然后将列
B
C
放入一列:

A   1  0    10   1    12   2    11   0    22   1    20   2     82  3    10   4    11   3    10   4    133  5    14   5    10

然后

k = g.reset_index()
创建顺序索引,结果是:

    A  level_1   00   1        0  101   1        1  122   1        2  113   1        0  224   1        1  205   1        2   86   2        3  107   2        4  118   2        3  109   2        4  1310  3        5  1411  3        5  10

现在,我想将此索引移到列中(我想听听如何在不重置索引的情况下创建顺序列)

k["i"] = k1.index

    A  level_1   0   i0   1        0  10   01   1        1  12   12   1        2  11   23   1        0  22   34   1        1  20   45   1        2   8   56   2        3  10   67   2        4  11   78   2        3  10   89   2        4  13   910  3        5  14  1011  3        5  10  11

现在,

k["rn"] = k1.groupby("A")["i"].rank()
将在每个行内添加row_number
A
(例如
row_number() over(partition by A order by i)
在SQL中:

    A  level_1   0   i  rn0   1        0  10   0   11   1        1  12   1   22   1        2  11   2   33   1        0  22   3   44   1        1  20   4   55   1        2   8   5   66   2        3  10   6   17   2        4  11   7   28   2        3  10   8   39   2        4  13   9   410  3        5  14  10   111  3        5  10  11   2

最后,只需枢纽

k.pivot_table(rows="A", cols="rn", values=0)

rn   1   2   3   4   5   6A   1   10  12  11  22  20   82   10  11  10  13 NaN NaN3   14  10 NaN NaN NaN NaN


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5663729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存