【发布时间】:2021-01-02 15:34:05
【问题描述】:
我正在尝试对 pandas df 进行分组,以便它将键保留为索引,但它不包含每个组中的键。
这是我的意思的一个例子。
-
原始数据帧
ungrouped_df = pd.DataFrame({'col1':['A','A','B','C','C','C'], 'col2':[8,5,1,4,1,2], 'col3':[7,4,2,1,2,1],'col4':[1,8,0,2,0,0]})
出来:
| index | col1 | col2 | col3 | col4 |
|-------|------|------|------|------|
| 1 | A | 8 | 7 | 1 |
| 2 | A | 5 | 4 | 8 |
| 3 | B | 1 | 2 | 0 |
| 4 | C | 4 | 1 | 2 |
| 5 | C | 1 | 2 | 0 |
| 6 | C | 2 | 1 | 0 |
-
现在,我想从分组数据框创建一个 numpy 数组
grouped_df = ungrouped_df.groupby(by='col1', group_keys=False).apply(np.asarray)
这就是我得到的
| index | col1 |
|-------|-------------------------------------------|
| A | [[A, 8, 7, 1],[A, 5, 4, 8],[A, 8, 7, 1]] |
| B | [[B, 1, 2, 0]] |
| C | [[C, 4, 1, 2], [C, 1, 2, 0], [C, 2, 1, 0]]|
- 这正是我想要得到的
出来:
| index | col1 |
|-------|----------------------------------|
| A | [[8, 7, 1],[5, 4, 8],[8, 7, 1]] |
| B | [[1, 2, 0]] |
| C | [[4, 1, 2], [1, 2, 0], [2, 1, 0]]|
我可以在这里使用一些建议,因为我有点迷茫。我认为“group_keys = False”可以解决问题,但事实并非如此。非常感谢任何帮助。
谢谢
【问题讨论】:
标签: python pandas pandas-groupby