2017-06-01 3 views

答えて

3

使用groupby + apply + to_json

#if necessary convert to string 
df['Date'] = df['Date'].astype(str) 
df = df.groupby('Date').apply(lambda x: dict(zip(x['sector'], x['weight']))).to_json() 
print (df) 
{"2011-01-10":{"b":23,"a":12},"2011-01-11":{"c":34,"d":54}} 
+0

ありがとう@jezrael、それは私が欲しかった完全に働いた。 – ammy

+0

喜んで助けることができます!私の答えが役に立ったら、[受諾](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。ありがとう。 – jezrael

1
grpby = df.set_index(['Date', 'sector']).weight.groupby('Date') 
{n: g.xs(n).to_dict() for n, g in grpby} 

{'2011-01-10': {'a': 12, 'b': 23}, '2011-01-11': {'c': 34, 'd': 54}} 
関連する問題