如何解决如何将 groupby 对象重新排列为固定长度的二维数组?
这可能是一个非常特殊的转换,但假设我有一个 panadas DataFrame df:
import pandas as pd
df=pd.DataFrame({'a':[1,2,3,4,5,6,7,8,9],'b':[2,3]}
a b
0 1 2
1 2 2
2 3 2
3 4 2
4 5 3
5 6 3
6 7 3
7 8 3
8 9 3
我想根据“b”列对其进行分组,然后将“a”列切割为具有一定数量的连续元素和每个组内的所有可能性的子集,以形成一个二维数组(DataFrame 或 numpy 数组)。例如,如果我想要 3 个连续元素的子集,结果应该是:
1 2 5 6 7
2 3 6 7 8
3 4 7 8 9
我正在使用以下代码:
gp=df.groupby(['b'])
n=3
comb=[]
for b,frame in gp:
for j in range(len(frame)-n+1):
ser=frame.a.iloc[j:j+n]
comb.appen(ser)
但它看起来不像python的方式。有没有更好的方法来做到这一点? 谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。