python - 将多列和多行组合为字典中的单个值

标签 python pandas

给定一个 Pandas df:

        Name      V1        V2
        a         1         2
        a         3         4
        a         5         6
        b         7         8
        b         9         10
        c         11        12
        ...

如何将其改造成复杂的格式字典:

        {a: [(1,2), (3,4), (5,6)], b: [(7,8), (9,10)], c: [(11,12)], ...}

请注意,同名的值也需要跨行组合;就像“a”有三行要组合成一个数字对的信号值数组。

最佳答案

尝试:

df['tup'] = df[['V1','V2']].agg(tuple, axis=1)
df.groupby('Name')['tup'].agg(list).to_dict()

输出:

{'a': [(1, 2), (3, 4), (5, 6)], 'b': [(7, 8), (9, 10)], 'c': [(11, 12)]}

关于python - 将多列和多行组合为字典中的单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59727022/

相关文章:

python - 什么是最Pythonic的方法来排序调用对象方法而不需要

python - 不允许合并超过一层的重叠

python - 按列分组统计不同的连续行

pandas - 如何显示 Pandas 列中某个值的最后一次出现?

python - Flask sqlalchemy - 最小应用程序

python - 是否有像 numpy.clip(a, a_min, a_max) 这样的函数,其中 a_min 和 a_max 之外的值被包裹而不是饱和?

python - 有没有更快的方法将大量字典转换为 pandas DataFrame?

python-3.x - pandas 计算匹配条件的文本的方法是什么?

python - Pandas -按累积时间段分组

python - 将带括号的字符串转换为 numpy 数组