python - 如何避免使用 iloc 或对索引号 pandas 进行硬编码以将单个数据帧中的行动态提取到多个子集中?
问题描述
我的数据框看起来像这样
country1 state1 city1 District1
india 36 20 40
china 27 21 35
honkong 34 21 38
london 32 21 38
company technology car brand population
adf java Ford 40
ydfh java Hyundai 19
klyu java Nissan 47
hy6g dotnet Toyota 20
rghtr dotnet Hyundai 30
htryr dotnet hummer 12
我想从单个数据帧创建多个子集,我不想使用索引号或 iloc 函数或对索引号进行硬编码,因为它会在条目 london 或最后一个条目之后有新条目时过滤掉
如果有任何新条目,它也应该被捕获,任何线索如何在 pandas 或使用 numpy 中执行?希望这个问题很清楚
解决方案
假设您的数据框保存为 df 您可以使用 groupby 并将分组的子数据保存到字典中以供将来参考。
d = {}
for group, frame in df.groupby('country1'):
d[group] = frame
此外,如果您想 groupby 乘以列,请将列表传递给 groupby,如下所示
for group, frame in df.groupby(['country1', 'technology']):
d[group] = frame
推荐阅读
- javascript - 如何使叠加层在单击之前保持隐藏状态
- css - 跨多列的角度 CSS 网格对象
- codeigniter - 文件上传时codeigniter出错
- python - 如果源图像和 LUT 似乎兼容,为什么 openCV cv2.LUT() 会抛出断言?
- typescript - Schema Stitching 通过添加前缀解决冲突
- reactjs - 无法在 React.js 中使用带有服务器端渲染 (SSR) 的窗口
- swift - 在 Ubuntu 中使用 Swift 时的错误
- javascript - 如何将所有带有字母 e 的单词过滤到一个数组中?
- r - R ggplot geom_text 消除了背景——错误?
- racket - 如何过滤随机数生成器而不包含 0