我有一个np列表。数组,表示熊猫数据框的索引。
我需要对索引进行分组,以获取每个数组的每个组
比方说,这就是df:
index values
0 2
1 3
2 2
3 2
4 4
5 4
6 1
7 4
8 4
9 4
这是np.arrays的列表:
[array([0, 1, 2, 3]), array([6, 7, 8])]
从这些数据中,我希望将2个没有循环操作的组作为单个groupby对象:
group1:
index values
0 2
1 3
2 2
3 2
group2:
index values
6 1
7 4
8 4
我再次强调,最终我需要获得一个groupby对象。
谢谢!
答案 0 :(得分:1)
我仍然使用for循环来创建 <router-link to="/AAA">AAA</router-link>
<router-link to="/BBB">BBB</router-link>
<router-link to="/CCC">CCC</router-link>
键groupby
dict
答案 1 :(得分:1)
df=pd.DataFrame([2,3,2,2,4,4,1,4,4,4],columns=['values'])
df.index.name ='index'
l=[np.array([0, 1, 2, 3]), np.array([6, 7, 8])]
groups=[df.loc[pd.Series(l1)] for i,l1 in enumerate(l)]
groups
Out[3]:
[ values
index
0 2
1 3
2 2
3 2, values
index
6 1
7 4
8 4]
答案 2 :(得分:0)
这似乎是X-Y problem:
l = [np.array([0,1,2,3]), np.array([6,7,8])]
df_indx = pd.DataFrame(l).stack().reset_index()
df_new = df.assign(foo=df['index'].map(df_indx.set_index(0)['level_0']))
for n,g in df_new.groupby('foo'):
print(g)
输出:
index values foo
0 0 2 0.0
1 1 3 0.0
2 2 2 0.0
3 3 2 0.0
index values foo
6 6 1 1.0
7 7 4 1.0
8 8 4 1.0