根据某些条件将 df 转换为字典

白牛

我有一个数据框,我想将每个 id 的数据放在一行中。每个 id 的某些列是不变的,而其中一些列是变化的。例如,以下示例中的 val1 和 val2 是常量。

所以,我想从这个数据框构建一个字典。键是id,值是一个列表,它是[每个id的行数,它的t,val1,val2]。这里是一个例子,对于 id=1 我们有 2 个 t,它的值是 1, 2,所以 '1': [2, 1, 2, 1, 5] 是第一个键和值。对于 id=2 我们有相同的薄。你能帮我解决这个问题吗?谢谢

df = pd.DataFrame()
df['id'] = [1, 1, 2, 2, 2,2]
df['t'] = [1, 2, 3, 4, 5,6]
df['val1'] = [1,1,0,0,0,0 ]
df['val2'] = [5,5, 4, 4,4,4]
out:
dic = {'1': [2, 1, 2, 1, 5], '2': [4, 3, 4, 5,6, 0,4]}
更多的
df.groupby('id').agg({'t':list, 'val1':'first', 'val2':'first'}).apply(lambda x: [len(x.t),*x.t,x.val1,x.val2], axis=1).to_dict()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章