我想连续循环我的数据帧通过多个groupby并且我想使用列号(或者它是列位置?)作为groupby索引,即。
数据帧
col1 | col2 | col3 | col4
-------------------------
12 22 13 14
13 23 15 16
14 24 17 18
我的代码:
for i in range(1:df.shape[1])
grouped = df.groupby([i-1, i])
#grouping by col1+col2, col2+col3, etc.
不幸的是它给我带来了关键错误:
File "C:\Program Files\Python\Python36\lib\site-packages\pandas\core\groupby.py", line 2690, in _get_grouper
raise KeyError(gpr)
KeyError: 1
如何使用列号进行pandas groupby?
答案 0 :(得分:2)
您似乎需要rolling
+某些功能,例如sum
:
df = df.rolling(2,axis=1, min_periods=1).sum()
print (df)
col1 col2 col3 col4
0 12.0 34.0 35.0 27.0
1 13.0 36.0 38.0 31.0
2 14.0 38.0 41.0 35.0
但也许需要这样的东西:
for i in range(1, df.shape[1]):
grouped = df.groupby(df.columns[[i-1, i]].tolist())