【问题标题】:Random Sampling a Multi-level column随机抽样多级列
【发布时间】:2021-11-02 09:48:09
【问题描述】:

level 列 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

谁能帮我解决这个问题?谢谢你:)

【问题讨论】:

  • this 回答你的问题了吗?
  • 很相似 :) 谢谢你的这个^^

标签: python pandas dataframe random multi-level


【解决方案1】:

您可以对第一级列进行采样,然后选择采样的列:

df[pd.Series(df.columns.levels[0]).sample(2)]

或者使用random.sample函数:

import random
df[random.sample(df.columns.levels[0].tolist(),2)]

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多