python - 随机抽样多级列
问题描述
看起来像这样的级别列DataFrame:
df
Solid Liquid Gas
pen paper pipe water juice milk oxygen nitrogen helium
5 2 1 4 3 1 7 8 10
5 2 1 4 3 1 7 8 10
5 2 1 4 3 1 7 8 10
4 4 7 3 2 0 6 7 9
3 7 9 4 6 5 3 3 4
我想要的是在“Solid”、“Liquid”和“Gas”中随机选择 2 列,并带有 3 个子列。
例如,如果要随机选择固体和气体,则预期结果应该是:
Solid Gas
pen paper pipe oxygen nitrogen helium
5 2 1 7 8 10
5 2 1 7 8 10
5 2 1 7 8 10
4 4 7 6 7 9
3 7 9 3 3 4
我已经尝试过这段代码,但它没有给我同样的结果。
result = df.sample(n=5, axis=1)
result
[output]
Solid Gas
pipe oxygen
1 7
1 7
1 7
1 7
7 6
9 3
谁能帮我解决这个问题?谢谢 :)
解决方案
您可以对第一级列进行采样,然后选择采样列:
df[pd.Series(df.columns.levels[0]).sample(2)]
或使用以下random.sample
功能:
import random
df[random.sample(df.columns.levels[0].tolist(),2)]
推荐阅读
- r - 如何从 R 中的初始组中找到后续组之间的值变化?
- ruby-on-rails - Rails 6:secrets.yml 未在 Mac 上加载,但可在 Ubuntu 上运行
- ios - 如何在不将父屏幕“转换”为卡片的情况下打开模式?
- angular - Jest 无法加载 Primeng css 文件
- c++ - 在 for 循环中跳过迭代
- python - 在内存中使用 typehint 动态创建函数
- html - 表格列宽被忽略
- c# - Mongo C# Aggregate 在 Lookup foreignField 中将 ObjectId 转换为字符串
- firebase - Flutter 中的文本识别使用 Firebase 的 ML Kit 是否可以在文本为阿拉伯语时进行?
- c# - 摆脱表达式树中的常量表达式以用作 Entity Framework Core 全局查询过滤器