我得到一个df
,如下:
tradeMonth tradeDay tradeMoney plate
0 12.0 2 2000.0 BK00052
1 11.0 1 2000.0 BK00052
2 2.0 0 16000.0 BK00028
3 4.0 1 1600.0 BK00028
4 2.0 2 2900.0 BK00017
我想使用groupby('plate')
来获得df
,如下所示:
plate tradeMonth tradeDay tradeMoney
BK00052 12.0 2 2000.0
11.0 1 2000.0
BK00028 2.0 0 16000.0
4.0 1 1600.0
BK00017 2.0 2 2900.0
而且我尝试使用df.unique()
来获取plate
的唯一值作为层次结构索引。但是接下来我应该实施什么呢?
有人可以帮我吗?
预先感谢。
答案 0 :(得分:2)
如果通过DataFrame.set_index
创建MultiIndex
:
df = df.set_index(['plate','tradeMonth','tradeDay'])
print (df)
tradeMoney
plate tradeMonth tradeDay
BK00052 12.0 2 2000.0
11.0 1 2000.0
BK00028 2.0 0 16000.0
4.0 1 1600.0
BK00017 2.0 2 2900.0
似乎第一级中的数据是唯一的,但不是唯一的,默认情况下不会显示。要进行验证,请将multi_sparse
更改为False
:docs:
我们已经“分散化”了索引的较高级别,以使控制台输出看起来更容易一些。请注意,可以使用
multi_sparse option
来控制索引的显示方式:
with pd.option_context('display.multi_sparse', False):
print (df)
tradeMoney
plate tradeMonth tradeDay
BK00052 12.0 2 2000.0
BK00052 11.0 1 2000.0
BK00028 2.0 0 16000.0
BK00028 4.0 1 1600.0
BK00017 2.0 2 2900.0
答案 1 :(得分:0)
简单
df = df.groupby('plate').groups
print df
您无需在此处提及独特之处。