python - 通过在单个记录中多次出现嵌套键进行分组

标签 python python-3.x pandas group-by

我有一个这样的数据框:

   a  b                   version
0  1  4  [{'x': 'q', 'y': 7},{'x': 's', 'y': 7}]
1  2  5  [{'x': 'r', 'y': 8},{'x': 'q','y': 8}]
2  3  6  [{'x': 's', 'y': 7}]

我想按 x 分组。

我尝试了这里的解决方案,但由于版本中有多个指令,我遇到了一个键盘错误。

Group pandas dataframe by a nested dictionary key

这是我尝试过的:

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

预期结果:

q 2
s 2
r 1

最佳答案

因为你显然不使用 ab 列,只需链接你的字典并获得一个全新的数据框架即可使用

ndf = pd.DataFrame(itertools.chain.from_iterable(df.version))
ndf.groupby('x').size()

x
q    2
r    1
s    2
dtype: int64

关于python - 通过在单个记录中多次出现嵌套键进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57189812/

相关文章:

Python 缩进错误 : “expected an indented block” on Xcode

python - 使用 Python lmfit 进行曲线拟合的参数估计

python - 如何在不更改全局打印选项的情况下显示数据框的所有列?

python - 我怎样才能在一个月的第一天对 pandas DatetimeIndex 重新采样

python - Pandas 回填具体值

Python多行字符串格式

python - 如何使用 Django Rest Framework 修补单个字段?

python Pandas : How to filter a dataframe with more than one expression stored in different variables?

python - 类型错误 : function missing required positional argument when reading arguments from file

python-3.x - 如何从Python中的行号获取短语?