pandas:按df键分组的词典列表

时间:2017-04-13 23:00:33

标签: pandas

我有多个数据框,例如:

In [44]: df1
Out[44]: 
   id featureName  featureValue
0    1   20003=foo             1

In [45]: df2
Out[45]: 
   id featureName  featureValue
0    2         bar          15.9
1    1         bar          23.8

我的目标是按以下方式生成字典列表:[{'20003=foo': 1, 'bar': 23.8}, {'bar': 15.9}]

我最初的方法是首先将df2附加到df1:

In [47]: x = df1.append(df2)
Out[47]: 
   id featureName  featureValue
0    1   20003=foo           1.0
0    2         bar          15.9
1    1         bar          23.8

然后在id上做一个groupby。

In [64]: grouped = x.groupby(by='id')

In [65]: for name, group in grouped:
    ...:     print group
    ...:         
   id featureName  featureValue
0    1   20003=foo           1.0
1    1         bar          23.8
   eid featureName  featureValue
0    2         bar          15.9

但那时我被卡住了。谢谢!

1 个答案:

答案 0 :(得分:0)

cols = ['featureName', 'featureValue']
[dict(zip(*g[cols].T.values)) for n, g in df1.append(df2).groupby('id')]

[{'20003=foo': 1.0, 'bar': 23.8}, {'bar': 15.9}]