使用 Groupby 根据列值拆分 Pandas 数据框
在 Python 中,可以根据列值将 Pandas 数据框拆分为多个数据框特定列中的值。此技术通常用于为列中的每个唯一类别或组创建单独的数据框。
例如,考虑以下带有名为“ZZ”的列的数据框:
df = N0_YLDF ZZ MAT 0 6.286333 2 11.669069 1 6.317000 6 11.669069 2 6.324889 6 11.516454 3 6.320667 5 11.516454 4 6.325556 5 11.516454 5 6.359000 6 11.516454 6 6.359000 6 11.516454 7 6.361111 7 11.516454 8 6.360778 7 11.516454 9 6.361111 6 11.516454
目标是将此数据帧拆分为四个新数据帧,每个数据帧包含“ZZ”具有特定值的行:2、5、6 和 7。为了实现这一目标,我们可以利用 Pandas 的“groupby”函数。
gb = df.groupby('ZZ') [gb.get_group(x) for x in gb.groups]
“groupby”函数创建一个 GroupBy 对象,该对象根据指定列中的值(本例中为“ZZ”)对数据帧行进行分组。 “ZZ”的每个唯一值都成为 GroupBy 对象中的一个组。
后续行使用列表理解来迭代组并将每个组作为单独的数据帧检索。使用每个组的名称(即“ZZ”的唯一值)调用“get_group”方法来提取相应的数据帧。
因此,此代码生成四个新的数据帧,每个数据帧代表在“ZZ”列中共享相同值的原始数据帧行。
以上是如何使用 Groupby 根据列值将 Pandas DataFrame 拆分为多个 DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!