熊猫按两个变量分组,转换为列表列表和多索引DF?



我有一个熊猫数据帧,如下所示:

df = pd.DataFrame({
'ID'   : ['A','B','C','A','B','C','A','B','C'],
'date' : [1,1,1,2,2,2,3,3,3], 
'value': [1,2,3,4,5,6,7,8,9]}
)

1(如何创建value列表列表(大概是使用groupby查询(,以便我获得按ID分组的外部组和按date分组的内部组:

  • 预期结果如下所示:[[1,4,7],[2,5,8],[3,6,9]]

  • 查询应该在熊猫中,理想情况下没有 for 循环。

2(补充问题: 如何从 groupby 查询中获取多索引数据帧:

例如g = df.groupby('id')期望的输出:

id  date  value
A   1     1
2     4
3     7
B   1     2
2     5
3     8
C   1     3
2     5
3     9
In [73]: df.groupby(['ID'])['value'].apply(list).tolist()
Out[73]: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

附加组件问题的答案:

In [110]: df.sort_values(['ID','date']).set_index(['ID','date'])
Out[110]:
value
ID date
A  1         1
2         4
3         7
B  1         2
2         5
3         8
C  1         3
2         6
3         9

最新更新