python - 根据唯一值从现有数据框创建几个数据框
问题描述
我的 DF 如下所示
x y z b
1 2 3 Max
12 32 8 Max
1 2 3 Jon
12 32 8 Max
1 25 3 Jon
12 32 81 Anna
所以我需要基于 b 列,取唯一值(在本例中为:Max、Jon、Anna)并创建 3 个新的 df,如下所示:
df_1:
x y z b
1 2 3 Max
12 32 8 Max
12 32 8 Max
df_2:
x y z b
1 2 3 Jon
1 25 3 Jon
df_3:
x y z b
12 32 81 Anna
我一直在寻找答案,但我不知道如何创建新的 DF。你有什么想法?当然,在原始 DF 中还有更多独特的价值。
问候托马斯
解决方案
您可以groupby('b')
制作字典:
dfs = {k:v for k,v in df.groupby('b')}
这是保存任意键的有效结构。特别是如果您事先不知道组的数量。
然后,您可以按键访问数据框:
>>> dfs['Max']
x y z b
0 1 2 3 Max
1 12 32 8 Max
3 12 32 8 Max
推荐阅读
- argparse - argparser 交互式
- ffmpeg - 如何在 ffmpeg 中为一段视频应用 delogo 或在多个区域应用 delogo?
- php - Google Sheets API 问题:即使 Sheets ID 100% 正确,也找不到请求的实体(PHP 客户端)
- typescript - 何时将 AxiosResponse 与 Typescript 一起使用
- go - Go:计算 UUID
- javascript - 按特定用户和特定属性过滤对象数组
- c# - ListView.SelectedItems 返回一个启用多选的项目
- java - 给定一个非负整数数组,展示如何在 Java 中使用计数排序和基数排序在 O(n) 时间内对数组进行排序
- c# - 根据条件在 DataGridView 中显示/隐藏按钮
- javascript - jQuery如何判断输入框中是否有值?