Giu*_*ppe 26 python group-by numpy pandas
我想知道是否有一种方法可以对连续的索引号进行分组并将组移动到不同的列中。这是我正在使用的DataFrame的示例:
0
0 19218.965703
1 19247.621650
2 19232.651322
9 19279.216956
10 19330.087371
11 19304.316973
Run Code Online (Sandbox Code Playgroud)
我的想法是按顺序索引号进行组合,得到如下所示的内容:
0 1
0 19218.965703 19279.216956
1 19247.621650 19330.087371
2 19232.651322 19304.316973
Run Code Online (Sandbox Code Playgroud)
我一直试图将数据分成3个块,然后再进行groupby划分,但是我一直在寻找更多可用于对顺序索引号进行分组和重新排列的东西。谢谢!
ank*_*_91 18
这是一种方法:
from more_itertools import consecutive_groups
final=pd.concat([df.loc[i].reset_index(drop=True)
for i in consecutive_groups(df.index)],axis=1)
final.columns=range(len(final.columns))
print(final)
Run Code Online (Sandbox Code Playgroud)
0 1
0 19218.965703 19279.216956
1 19247.621650 19330.087371
2 19232.651322 19304.316973
Run Code Online (Sandbox Code Playgroud)
这是groupby+pivot_table
m = df.index.to_series().diff().ne(1).cumsum()
(df.assign(key=df.groupby(m).cumcount())
.pivot_table(index='key', columns=m, values=0))
Run Code Online (Sandbox Code Playgroud)
1 2
key
0 19218.965703 19279.216956
1 19247.621650 19330.087371
2 19232.651322 19304.316973
Run Code Online (Sandbox Code Playgroud)
pandas.Series新的pandas.MultiIndexa = pd.factorize(df.index - np.arange(len(df)))[0]
b = df.groupby(a).cumcount()
pd.Series(df['0'].to_numpy(), [b, a]).unstack()
0 1
0 19218.965703 19279.216956
1 19247.621650 19330.087371
2 19232.651322 19304.316973
Run Code Online (Sandbox Code Playgroud)
a = pd.factorize(df.index - np.arange(len(df)))[0]
b = df.groupby(a).cumcount()
c = np.empty((b.max() + 1, a.max() + 1), float)
c.fill(np.nan)
c[b, a] = np.ravel(df)
pd.DataFrame(c)
0 1
0 19218.965703 19279.216956
1 19247.621650 19330.087371
2 19232.651322 19304.316973
Run Code Online (Sandbox Code Playgroud)
一种方式 pandas groupby
s=df.index.to_series().diff().ne(1).cumsum()
pd.concat({x: y.reset_index(drop=True) for x, y in df['0'].groupby(s)}, axis=1)
Out[786]:
1 2
0 19218.965703 19279.216956
1 19247.621650 19330.087371
2 19232.651322 19304.316973
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
583 次 |
| 最近记录: |