df = pd.DataFrame({'a':[1,2,4,5,6,8],
'b':[5,6,4,8,9,6],
'c':[6,3,3,7,8,4],
'd':[1,2,3,8,7,3],
'e':[3,2,4,4,6,2],
'f':[3,2,6,4,5,5]})
我想将df分成几部分(分为2,3,4..n部分)
df1 =
a b c d e f
0 1 5 6 1 3 3
1 2 6 3 2 2 2
df2 =
a b c d e f
2 4 4 3 3 4 6
3 5 8 7 8 4 4
df3 =
a b c d e f
4 6 9 8 7 6 5
5 8 6 4 3 2 5
实际数据的可分大小不相等!
真实数据4351 rows × 3 columns
答案 0 :(得分:1)
使用qcut
进行拆分。以后如何存储取决于您自己
import pandas as pd
gp = df.groupby(pd.qcut(range(df.shape[0]), 3)) # N = 3
d = {f'df{i+1}': x[1] for i, x in enumerate(gp)}
d['df1']
# a b c d e f
#0 1 5 6 1 3 3
#1 2 6 3 2 2 2
答案 1 :(得分:0)
假设您的DataFrame可以平均分为n
个块:
n = 3
dfs = [df.loc[i] for i in np.split(df.index, n)]
dfs
是一个包含3个数据帧的列表。