我有一个pandas数据框,如下所示:
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]]
查询应该在pandas中,理想情况下没有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
答案 0 :(得分:2)
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