2017-06-01 3 views

Antwort

3

Verwenden 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

Danke @jezrael, es hat perfekt funktioniert habe ich wollte. – ammy

+0

Froh kann helfen! Wenn meine Antwort hilfreich war, vergiss sie nicht [accept] (http://meta.stackexchange.com/a/5235/295067). Vielen Dank. – 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}} 
Verwandte Themen