我有一个包含 77000 行的索引数据框。
我想将每 7000 行分组为一个更高维度的多重索引,形成 11 组更高维度的索引。
我知道我可以编写一个遍历所有索引的循环并创建一个元组并通过 dataframe.MultiIndex.from_tuples
方法分配它。
有没有一种优雅的方式来完成这个简单的事情?
最佳答案
您可以使用the pd.qcut
function创建一个可以添加到索引的新列。
以下是创建五个组/ block 的示例:
df = pd.DataFrame({'data':range(1,10)})
df['chunk'] = pd.qcut(df.data, 5, labels=range(1,6))
df.set_index('chunk', append=True, inplace=True)
df
data
index chunk
0 1 1
1 1 2
2 2 3
3 2 4
4 3 5
5 4 6
6 4 7
7 5 8
8 5 9
您可以执行 df['chunk'] = pd.qcut(df.index, 11)
将 block 分配给数据帧。
关于python - 将数据帧分割成 block 并将它们添加到多重索引中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31749090/