我有一个 Pandas 数据框,其中一列是字典类型。这是一个示例数据框:

import pandas as pd
df = pd.DataFrame({'a': [1,2,3],
                   'b': [4,5,6],
                   'version': [{'major': 7, 'minor':1},
                               {'major':8, 'minor': 5},
                               {'major':7, 'minor':2}] })

df:
   a  b                   version
0  1  4  {'minor': 1, 'major': 7}
1  2  5  {'minor': 5, 'major': 8}
2  3  6  {'minor': 2, 'major': 7}

我正在寻找一种通过该字典键对数据框进行分组的方法;在这种情况下,通过 版本 标签中的 主要 键对 df 数据帧进行分组。

我尝试了一些不同的东西,从将字典键传递给数据框 groupby 函数 `df.groupby(['version']['major']),这不起作用,因为 major 不是数据框标签的一部分, 将 版本 分配给数据帧索引,但到目前为止没有任何效果。我还试图将字典展平为数据帧本身中的附加列,但这似乎有其自身的问题。

任何想法?

附言抱歉格式化,这是我的第一个 stackoverflow 问题。

最佳答案

选项 1

df.groupby(df.version.apply(lambda x: x['major'])).size()

version
7    2
8    1
dtype: int64
df.groupby(df.version.apply(lambda x: x['major']))[['a', 'b']].sum()

python - 按嵌套字典键对 Pandas 数据框进行分组-LMLPHP

选项 2
df.groupby(df.version.apply(pd.Series).major).size()

major
7    2
8    1
dtype: int64
df.groupby(df.version.apply(pd.Series).major)[['a', 'b']].sum()

python - 按嵌套字典键对 Pandas 数据框进行分组-LMLPHP

关于python - 按嵌套字典键对 Pandas 数据框进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38881679/

10-12 17:50
查看更多