我有一个熊猫数据帧,如下所示:
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