拆分熊猫之间没有共同的价值观



我有一个pandas数据帧,其列ID如下。

ID
1 
1
1
20
20
30
50
50
51
60
60
300
300
302
302
500

有没有任何自动有效的方法可以将其拆分为n,比如说n=4块,这样

chunk-1:
ID
1
1
1
20
20
chunk-2:
ID
30
50
50
51
chunk-3:
ID
60
60
300
300
chunk-4:
ID
302
302
500

需要注意的是,

  1. 每个区块的大小可能不相同
  2. 任何组块之间都没有共同的值

我尝试了简单的df_split = np.array_split(df, 4),但它不满足上述两个条件中的条件2

使用groupby拆分数据。

import pandas as pd
df = pd.DataFrame({'id': [1,1,1,20,20,30,40,40,51,60,60,300,300,302,302,500]})
df_grouped = [subgroup for _, subgroup in df.groupby('id')]

如果你想把这个结果分成四组,

df_grouped_new = [df_grouped[0], df_grouped[1], df_grouped[2], pd.concat(df_grouped[3:])]

然后

print(df_grouped_new[0])
>>> 
id
0   1
1   1
2   1
print(df_grouped_new[1])
>>>
id
3  20
4  20
print(df_grouped_new[2])
>>>
id
5  30
print(df_grouped_new[3])
>>> 
id
6    40
7    40
8    51
9    60
10   60
11  300
12  300
13  302
14  302
15  500

最新更新