首页 > 解决方案 > Pandas 中样本块的便捷方式?

问题描述

我有随着时间的推移跟踪一组人的数据。举一个小例子,它看起来像这样:

ID    TIME   HEIGHT
0     0      10.2
0     1      3.3
0     2      2.1
1     0      11.3
1     1      8.6
1     2      9.1
2     0      10.0
2     1      35.0
2     2      4.1
.
.
.
100   0      1.0
100   1      3.0
100   2      9.0

其中,为了说明,ID指的是特定的人。因此,所有 的值TIME在 x 轴和y 轴上的绘图给出了人身高的变化。HEIGHTID=00

我想绘制这些人的随机样本并绘制它们。因此,例如,我想绘制 3 个人的身高随时间的变化。然而,应用通常df.sample(3)并不总是确保我得到一个特定的人的所有时间,相反它会随机选择 3 行并绘制它们。是否有首选/方便的方式pandas来抽样随机组?

像这样的很多问题似乎都是关于从每个组中抽样的,这不是我想做的。

标签: pythonpandas

解决方案


您想'TIME'在 x 轴上绘图,然后获取一个矩形数据框,其中'TIME'包含索引和'ID'列。从那里,使用samplewithaxis=1对列进行采样并保持索引不变。

df.set_index(['TIME', 'ID']).HEIGHT.unstack().sample(3, axis=1).plot()

在此处输入图像描述


推荐阅读